我有两个大致类似的DataFrames
(ID) (Category) (Value1) (Value2)
111 1 5 7
112 1 3 8
113 2 6 9
114 3 2 6
和
(Category) (Value1 Average for Category) (Value2 Average for Category)
1 4 5
2 6 7
3 9 2
最终,我想将两个DataFrame合并在一起,以便每个ID可以在与之对应的行中获得其类别的平均值。我在寻找正确的方式加入/合并/等方面遇到困难。通过检查另一个DateFrame中的类别将填充列。有谁知道从哪里开始?
答案 0 :(得分:0)
只需:
df1.groupby(['ID', 'Category']).transform(func='mean')
在第一个数据帧上获取所需的数据帧。
答案 1 :(得分:0)
您只是在寻找join
,在大熊猫中,我们使用pd.merge
来实现以下目的:
df3 = pd.merge(df1, df2, on='Category')
ID Category Value1 Value2 Value 1 Average Value 2 Average
0 111 1 5 7 4 5
1 112 1 3 8 4 5
2 113 2 6 9 6 7
3 114 3 2 6 9 2
pandas
关于合并的正式文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html
这是有关联接的一个很好的解释: Pandas Merging 101