【问题标题】:why does groupby function returns duplicated data [duplicate]为什么groupby函数返回重复数据[重复]
【发布时间】:2019-12-01 19:32:00
【问题描述】:

我正在测试 pandas.groupby 函数并生成了一个随机数据帧

df = pd.DataFrame(np.random.randint(5,size=(6,3)), columns=list('abc'))

在随机情况下,df 是:

   a  b  c
0  2  2  2
1  1  4  2
2  3  0  1
3  2  1  3
4  0  2  2
5  2  1  4

当我使用以下代码打印出 groupby 对象时,我得到了一些有趣的结果。

def func(x):
    print(x)
df.groupby("a").apply(lambda x: func(x))

   a  b  c
0  0  1  4
   a  b  c
0  0  1  4
   a  b  c
2  2  4  1
3  2  2  1
   a  b  c
1  4  0  0
4  4  4  3

谁能告诉我为什么索引 0 在这种情况下出现两次?

【问题讨论】:

  • 为了避免这种行为,也为了防止输出None,您也可以只遍历组for idx,grp in df.groupby('a'): print(grp)
  • 是的,这可行。我只有一张很大的桌子,我认为 .apply 的迭代速度比 for 循环快

标签: python pandas pandas-groupby


【解决方案1】:

DataFrame.groupby.apply 对第一组进行两次评估,以确定剩余组是否可以遵循快速计算路径。在pandas 的最新版本中,这种行为已经改变,正如here 所讨论的那样

【讨论】:

  • 有趣...非常感谢您的回答
  • @Y.Peng 不客气;如果您认为这回答了您的问题,请将其标记为已接受的答案
猜你喜欢
  • 2019-02-28
  • 1970-01-01
  • 2020-03-30
  • 2020-10-01
  • 2021-01-03
  • 1970-01-01
  • 2019-09-03
  • 2021-10-19
相关资源
最近更新 更多