1 回答

TA贡献1921条经验 获得超9个赞
由于您正在尝试按月份分组,因此理想情况下您应该尝试从 C 列中提取月份,这将使事情变得更容易。
df['F'] = df.C.apply(lambda x: x.split("-")[1])
print(df)
A C D E F
0 W 6-Mar NaN 1.0 Mar
1 W 6-Mar 4.0 NaN Mar
2 W 6-Mar NaN 1.0 Mar
3 W 6-Apr 2.0 NaN Apr
4 W 6-Apr NaN 2.0 Apr
5 Y 6-Mar 10.0 NaN Mar
6 Y 6-Mar NaN 2.0 Mar
7 Y 6-Apr 6.0 NaN Apr
8 Y 6-Apr NaN 2.0 Apr
对于第 1 部分(G 列是您要查找的列):
df_grouped1 = df.groupby(['A', 'F'])['D', 'E'].sum().reset_index()
df_grouped1['G'] = df_grouped1['D']/df_grouped1['E']
print(df_grouped1)
A F D E G
0 W Apr 2.0 2.0 1.0
1 W Mar 4.0 2.0 2.0
2 Y Apr 6.0 2.0 3.0
3 Y Mar 10.0 2.0 5.0
对于第 2 部分(不确定我是否正确理解了这部分问题。如果我错了请纠正我):
print(df_grouped1.groupby('A')['G'].mean().reset_index())
A G
0 W 1.5
1 Y 4.0
添加回答
举报