gpt4 book ai didi

python - pandas 在 groupby 级别 2 总和或平均条件上删除行

转载 作者:行者123 更新时间:2023-11-30 22:02:12 27 4
gpt4 key购买 nike

如果组中的值总和等于某个值,我想删除一个组(组中的所有行)。

以下代码提供了一个示例:

>>> df = pd.DataFrame(randn(10,10), index=pd.date_range('20130101',periods=10,freq='T'))
>>> df = pd.DataFrame(df.stack(), columns=['Values'])
>>> df.index.names = ['Time', 'Group']
>>> df.head(12)

Values
Time Group
2013-01-01 00:00:00 0 0.541795
1 0.060798
2 0.074224
3 -0.006818
4 1.211791
5 -0.066994
6 -1.019984
7 -0.558134
8 2.006748
9 2.737199
2013-01-01 00:01:00 0 1.655502
1 0.376214

>>> df['Values'].groupby('Group').sum()

Group
0 3.754481
1 -5.234744
2 -2.000393
3 0.991431
4 3.930547
5 -3.137915
6 -1.260719
7 0.145757
8 -1.832132
9 4.258525
Name: Values, dtype: float64

所以问题是;例如,我如何删除分组总和为负数的所有组行?在我的实际数据集中,我想删除总和或平均值为零的组。

最佳答案

使用 GroupBy + transformsum,后跟 bool 索引:

res = df[df.groupby('Group')['Values'].transform('sum') > 0]

关于python - pandas 在 groupby 级别 2 总和或平均条件上删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53859463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com