在数据框架上合并mean
和min
的语法是什么?我想按2列分组,计算col3
组内的平均值,并保持min
col4
值。会像
groupeddf = nongrouped.groupby(['col1', 'col2', 'col3'], as_index=False).mean().min('col4')
工作?如果没有,那么正确的语法是什么?谢谢!
修改
好的,所以如果没有例子,这个问题就不是很清楚了。我现在就更新它。也改变了上面的文字。
我有:
ungrouped
col1 col2 col3 col4
1 2 3 4
1 2 4 1
2 4 2 1
2 4 1 3
2 3 1 3
通缉输出按列1-2分组,表示第3列(实际上是数据上的更多列,这是简化的)和col4的最小值:
grouped
col1 col2 col3 col4
1 2 3.5 1
2 4 1.5 1
2 3 1 3
答案 0 :(得分:3)
我认为您需要先mean
,然后min
列col4
:
min_val = nongrouped.groupby(['col1', 'col2', 'col3'], as_index=False).mean()['col4'].min()
或min
的{{1}}:
Series
样品:
min_val = nongrouped.groupby(['col1', 'col2', 'col3'])['col4'].mean().min()
编辑:
您需要aggregate
:
nongrouped = pd.DataFrame({'col1':[1,1,3],
'col2':[1,1,6],
'col3':[1,1,9],
'col4':[1,3,5]})
print (nongrouped)
col1 col2 col3 col4
0 1 1 1 1
1 1 1 1 3
2 3 6 9 5
print (nongrouped.groupby(['col1', 'col2', 'col3'])['col4'].mean())
1 1 1 2
3 6 9 5
Name: col4, dtype: int64
min_val = nongrouped.groupby(['col1', 'col2', 'col3'])['col4'].mean().min()
print (min_val)
2