在列中创建一个名为“keys”的重复单元格值的DataFrame:
import pandas as pd
df = pd.DataFrame({'keys': [1,2,2,3,3,3,3],'values':[1,2,3,4,5,6,7]})
我继续创建另外两个DataFrame,它们是原始DataFrame df
的合并版本。那些新创建的DataFrames在“keys”列下没有重复的单元格值:
df_sum = df_a.groupby('keys', axis=0).sum().reset_index()
df_mean = df_b.groupby('keys', axis=0).mean().reset_index()
正如您所看到的,df_sum['values']
单元格值全部汇总在一起。
虽然使用df_mean['values']
方法对mean()
单元格值进行了平均值。
最后,我使用以下命令重命名两个数据框中的“值”列:
df_sum.columns = ['keys', 'sums']
df_mean.columns = ['keys', 'means']
现在,我想将df_mean['means']
列复制到数据框df_sum
。
如何实现这一目标?
下面的Photoshoped图片说明了我想要创建的数据帧。 'sums'和'means'列都合并为一个DataFrame:
答案 0 :(得分:3)
有几种方法可以做到这一点。在数据帧外使用merge
函数效率最高。
df_both = df_sum.merge(df_mean, how='left', on='keys')
df_both
Out[1]:
keys sums means
0 1 1 1.0
1 2 5 2.5
2 3 22 5.5
答案 1 :(得分:2)
我认为onclick="$(this).parent.remove()"
是您正在寻找的功能。像pandas.merge()
一样。此外,这个结果也可以在一个pd.merge(df_sum, df_mean, on = "keys")
函数中总结如下:
agg