【发布时间】: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