熊猫 - 组,总和和计数
问题描述:
我有一个数据帧,看起来像这样:熊猫 - 组,总和和计数
x = pd.DataFrame.from_dict({'row':[1, 1, 2, 3, 4,4,4], 'val_x': [1, 2, 3, 4, 5, 6, 7], 'i_x': [1, 2, 2,3, 5,5,6]})
i_x row val_x
0 1 1 1
1 2 1 2
2 2 2 3
3 3 3 4
4 5 4 5
5 5 4 6
6 6 4 7
我想这组按行,各组总结val_ix的值。并计算i_x的不同值。所以输出应该是这样的:
i_x row val_x
0 1 1 3
1 1 2 3
3 1 3 4
4 2 4 18
例如,如果你在最后一排,它有I_X = 2,因为我们有一个小组在2倍不同的值(5,6),它们加起来5 + 6 + 7 = 18
答
使用agg
In [593]: x.groupby('row', as_index=False).agg({'i_x': 'nunique', 'val_x': 'sum'})
Out[593]:
row val_x i_x
0 1 3 2
1 2 3 1
2 3 4 1
3 4 18 2
同
In [594]: x.groupby('row', as_index=False).agg({'i_x': pd.Series.nunique, 'val_x': np.sum})
Out[594]:
row val_x i_x
0 1 3 2
1 2 3 1
2 3 4 1
3 4 18 2
你不是应该标记这个问题重复inste试图获得积分的广告? –
我没有找到愚蠢的东西,请按照你看到的那样关闭它。在您指责我寻找积分之前,请回头看看我的活动,看看我今天和之前所做的一般情况,先生! – Zero