gpt4 book ai didi

python - 如何将前提条件应用于 GroupBy 或如何忽略 GroupBy 中具有一条记录的组

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:29 25 4
gpt4 key购买 nike

我有一组行,我想按标识符的值进行分组 - 存在于每一行中 - 然后对将作为结果的组进行进一步的隔离处理。

我的数据框是这样的:

In [50]: df
Out[50]:
groupkey b c d e date
0 C1 b1 c1 d1 e1 2014-10-26 12:13:14
1 C2 NaN c2 d2 e2 2014-11-02 12:13:14
2 C1 b3 c3 d3 e3 2014-11-09 12:13:14
3 C1 b4 NaN d4 e4 2014-11-16 12:13:14
4 C3 b5 c5 d5 e5 2014-11-23 12:13:14
5 C2 b6 c6 d6 e6 2014-11-30 12:13:14

如果我要按 groupkey 分组,我知道我应该只处理返回的 GroupBy:

>> df.groupby('groupkey')

但是,在分组之前以及为了并行目的减小我的数据集的大小,我不想考虑每组只有一个记录的任何行(如果以上述方式分组)。

在我的示例中,这意味着 4 行应该被排除在外。

现在,在我看来,计算每组记录的最简单方法当然是先分组,然后再计算记录,就像这样:

>> df.groupby('groupkey').count()

我想我可以这样做,然后删除只有一条记录的组。

  1. 我不确定如何在不必手动返回并删除只有一条记录的组的情况下解决此问题。

  2. 我想知道是否有一种方法可以让我在分组时考虑到这种情况?

感谢帮助

最佳答案

您想filter groupby 对象在组上使用 len:

In [9]:
df.groupby('groupkey').filter(lambda x: len(x) > 1)

Out[9]:
groupkey b c d e date
0 C1 b1 c1 d1 e1 2014-10-26 12:13:14
1 C2 NaN c2 d2 e2 2014-11-02 12:13:14
2 C1 b3 c3 d3 e3 2014-11-09 12:13:14
3 C1 b4 NaN d4 e4 2014-11-16 12:13:14
5 C2 b6 c6 d6 e6 2014-11-30 12:13:14

关于python - 如何将前提条件应用于 GroupBy 或如何忽略 GroupBy 中具有一条记录的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36934353/

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