我有两个数据框。
df1
Name class value
Sri 1 5
Ram 2 8
viv 3 4
df2
Name class value
Sri 1 5
viv 4 4
我的期望输出是:
df,
Name class value
Sri 2 10
Ram 2 8
viv 7 8
请帮忙,谢谢!
我有两个数据框。
df1
Name class value
Sri 1 5
Ram 2 8
viv 3 4
df2
Name class value
Sri 1 5
viv 4 4
我的期望输出是:
df,
Name class value
Sri 2 10
Ram 2 8
viv 7 8
请帮忙,谢谢!
我认为需要使用set_index
将两个DataFrame
都设置索引,然后再使用add
和最后一个reset_index
函数:
df = df1.set_index('Name').add(df2.set_index('Name'), fill_value=0).reset_index()
print (df)
Name class value
0 Ram 2.0 8.0
1 Sri 2.0 10.0
2 viv 7.0 8.0
如果 Name
列中的值不唯一,可以使用 groupby
和聚合函数 sum
:
df = df1.groupby('Name').sum().add(df2.groupby('Name').sum(), fill_value=0).reset_index()
UserWarning: Boolean Series key will be reindexed to match DataFrame index.
这个警告,该怎么办? - Pydpandas.core.indexing.IndexingError: Unalignable boolean Series key provided
错误,我的 pandas
版本是 0.19.2。 - Pyddf=df1.add(df2, fill_value=0)
。 - V. Brunelle