Python pandas.groubpy.apply执行的次数太多?

Python pandas.groubpy.apply执行的次数太多?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我试图了解如何在Pandas中使用groupby().apply()函数,因此我制作了一个简单的虚拟程序,用于打印每个组的分组数据帧: import pandas as pd def dummy(df): print(df) return df df_original = pd.DataFrame({'A': ['a,a,a,a','b,b,b','c','d,d,d', 'e'], 'B': [0, 0, 1, 1, 2]}) print(df_original) df2 =

我试图了解如何在Pandas中使用groupby().apply()函数,因此我制作了一个简单的虚拟程序,用于打印每个组的分组数据帧:

import pandas as pd

def dummy(df):
  print(df)  
  return df

df_original = pd.DataFrame({'A': ['a,a,a,a','b,b,b','c','d,d,d', 'e'], 'B': [0, 0, 1, 1, 2]})
print(df_original)

df2 = df_original.groupby('B').apply(dummy)
然而,我得到的输出显示第一个组被打印了两次,就好像apply函数在它上面迭代了两次:

# original dataframe
         A  B
0  a,a,a,a  0
1    b,b,b  0
2        c  1
3    d,d,d  1
4        e  2

# output of dummy()
     A      B
0  a,a,a,a  0
1    b,b,b  0
     A      B
0  a,a,a,a  0
1    b,b,b  0
     A    B
2      c  1
3  d,d,d  1
   A  B
4  e  2

我不明白这么简单的事情哪里会出问题

你可以从@Gwendal的建议中读到哪里出了问题

如果您想要快速修复,请使用此选项

df_original = pd.DataFrame({'A': ['a,a,a,a','b,b,b','c','d,d,d', 'e'], 'B': [0, 0, 1, 1, 2]})

for _ in df_original['B'].unique():
  print(df_original[df_original['B']==_])
输出

         A  B
0  a,a,a,a  0
1    b,b,b  0
       A  B
2      c  1
3  d,d,d  1
   A  B
4  e  2

谢谢-标记为重复