基于另一列的冗余平均数据帧列的数据

时间:2020-12-23 10:27:26

标签: python pandas

我想对 Pandas 数据框中一列的数据求平均值,因为它们共享存储在同一数据框中另一列中的相同“id”。为了简单起见,我有:

enter image description here

我想要:

enter image description here

很明显,如果“节点”的值相同,“nx”和“ny”列元素已被平均。另一方面,“maille”列必须保持不变。 我正在尝试使用 groupby,但直到现在还无法保持“maille”列的原样。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

使用 GroupBy.transform 指定列表中的列名称以进行聚合并分配回:

cols = ['nx','ny']
df[cols] = df.groupby('nodes')[cols].transform('mean')
print (df)

DataFrame.update 的另一个想法:

df.update(df.groupby('nodes')[cols].transform('mean'))
print (df)