pandas合并两个表格,python pandas 合并单元格

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: