如果索引值相同,如何将一个DataFrame列复制到另一个Dataframe

时间:2016-09-03 02:20:23

标签: python pandas

在列中创建一个名为“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]})

enter image description here

我继续创建另外两个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']

enter image description here

现在,我想将df_mean['means']列复制到数据框df_sum

如何实现这一目标?

下面的Photoshoped图片说明了我想要创建的数据帧。 'sums'和'means'列都合并为一个DataFrame:

enter image description here

2 个答案:

答案 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