首页 > 解决方案 > Pandas 中列的元素操作

问题描述

我想对 Pandas 中三个不同数据帧中长度不同的三列的元素进行平均。例如:

df_1:

c1 | c2 | c3
0  | 1  | 2
1  | 2  | 3
2  | 3  | 4

df_2:

c1 | c2 | c3
1  | 2  | 3
1  | 2  | 3
1  | 2  | 3

df_3:

c1 | c2 | c3
3  | 2  | 1
1  | 2  | 3
3  | 2  | 1

我想平均 c3 的每个元素,并将其保存在新的df_4 中

c1 | c2 | c3
3  | 2  | (2+3+1)/3
1  | 2  | (3+3+3)/3
3  | 2  | (4+3+1)/3

我尝试了以下仅返回 NaN 值的方法:

df_1_c3 = df_1.loc[:,'c3']
df_2_c3 = df_2.loc[:,'c3']
df_3_c3 = df_3.loc[:,'c3']


adc_avg = pd.DataFrame((df_1_c3 + df_2_c3 + df_3_c3 )/3)

标签: pythonpandasdataframe

解决方案


尝试以下操作(根据您的描述,我认为 df_4 的 c1、c2 列与 df_3 相同):

df_4=df_3.copy()
df_4['c3']=[sum(i)/3 for i in zip(df_1.c3, df_2.c3, df_3.c3)]

推荐阅读