pandas合并两个表格,python pandas 合并单元格
Python熊猫合并不能基于列名合并两个数据框(关键错误)?_ Bioinfarmer的技术博客_博客
目录
折腾解折腾数据分析用来R,感觉熊猫用起来有点反人类。今天,当python pandas用于处理数据时,这两个数据框架就是不能合并。
我有两个数据框,列名未知。我只能知道索引,以及哪两个索引作为主键来合并。不要问我为什么列名不明,因为我是开发工具。
思路是这样的:找到主键列,重命名,然后合并。
df1 . columns . values[args . marker 1-1]= markerID
df2 . columns . values[args . marker 2-1]= markerID
Pd.merge(df1,df2,on=markerID )但结果是无论如何也合并不了。错误关键字错误:“标记id”。
我在网上查了一下,说不能用columns.values直接赋值,要分开。所以:
colnames_df1=df1.columns
colnames _ df1[args . marker 1-1]= markerID
df1.columns=colnames_df1
colnames_df2=df2.columns
colnames _ df2[args . marker 1-1]= markerID
df2.columns=colnames_df2
Pd.merge(df1,df2,on=markerID )实际上没什么区别。TypeError:索引不支持可变操作
打印出数据框的所有列名。看起来很正常。为什么不能合并?
以一种非常粗暴的方式:
警察。Merge (DF1,DF2,left _ index=true,right _ index=true)对于大部分数据是可以的,但是有些数据不行,没有报错。结果是错的,所以风险很大。
最后我又上网搜了一遍,终于找到了答案。
原因:
两个数据框的主键名看起来相同,但实际上可能不同,因为它们可能包含空格。你是怎么来的?无解。
解决方案是删除列名中可能存在的空格。
方法1:
df1 . columns=df1 . columns . str . strip()
2.df columns=df2 . columns . str . strip()方法2:
读入数据时移除。
pd.read_csv(file,sep=\s*,\s* )
# delimitercludes x * whitespace beforeandafter对应我的数据:
df1 . columns=df1 . columns . str . strip()
df2 . columns=df2 . columns . str . strip()
Mr kid=df1 . columns . values[args . marker-1]
df1 . columns . values[args . marker-1]= markerID
mergesnp=pd.merge(df1,df2,on=markerID )
merges NP . columns . values[args . marker-1]=Mr kid
参考:3359 stack overflow . com/questions/47608112/python-pandas-merge-cant-find-column-name
作者:Bioinfarmer
及时了解动态信息,请关注同名微信微信官方账号:Bioinfarmer。
来自
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。