我是Pandas的新手,我正在尝试做一些基本的数据转换练习。我尝试使用的一种方法是groupby
,但我无法理解我看到的输出。
df = pd.DataFrame({'row': range(10), 'time': range(10), 'machine': ['M1', 'M2', 'M3', 'M1', 'M2', 'M3', 'M1', 'M2', 'M3', 'M1'], 'value1': range(10), 'value2': range(10)})
def func(g):
print '----', type(g)
return 42
print df.groupby('machine', axis=0).apply(func)
为什么在函数中打印4次打印语句?我认为它的工作方式是将df
分组为3个数据帧(对于每台机器)并在每个分组的数据帧上应用func
。但这不是我观察到的......
完整输出:
---- <class 'pandas.core.frame.DataFrame'>
---- <class 'pandas.core.frame.DataFrame'>
---- <class 'pandas.core.frame.DataFrame'>
---- <class 'pandas.core.frame.DataFrame'>
machine
M1 42
M2 42
M3 42
dtype: int64
我刚发现这个duplicate。