用Pandas合并两个数据框
当我尝试通过行合并两个数据框时,使用了以下代码:
bigdata = data1.append(data2)
结果出现了以下错误:
Exception: Index cannot contain duplicate values!
第一个数据框的索引是从0到38,第二个数据框的索引是从0到48。我没有明白在合并之前需要修改其中一个数据框的索引,但我不知道该怎么做。
谢谢。
这两个数据框是:
data1
:
meta particle ratio area type
0 2 part10 1.348 0.8365 touching
1 2 part18 1.558 0.8244 single
2 2 part2 1.893 0.894 single
3 2 part37 0.6695 1.005 single
....clip...
36 2 part23 1.051 0.8781 single
37 2 part3 80.54 0.9714 nuclei
38 2 part34 1.071 0.9337 single
data2
:
meta particle ratio area type
0 3 part10 0.4756 1.025 single
1 3 part18 0.04387 1.232 dusts
2 3 part2 1.132 0.8927 single
...clip...
46 3 part46 13.71 1.001 nuclei
47 3 part3 0.7439 0.9038 single
48 3 part34 0.4349 0.9956 single
第一列是索引
3 个回答
0
试试用 pd.concat
这个方法。
bigdata = pd.concat([data1,data2])
1
你可以先用 groupby
方法找出那些索引重复的行(不是值重复),然后对所有这些重复索引的行进行求和或求平均的操作。
data1 = data1.groupby(data1.index).sum()
data2 = data2.groupby(data2.index).sum()
44
这个 append
函数有一个可选的参数叫 ignore_index
,你可以在这里使用它来把记录合并在一起,因为在你的应用中,索引并没有什么特别的意义。