[英]pandas groupby-apply missing columns
我有一个DataFrame,我想执行“ groupby-apply”样式的操作,但是,该操作后缺少“关键”列:
df = pd.DataFrame({
'col1':['A1', 'A2', 'A3'],
'col2':['B1', 'B1', 'B2'],
'col3':[1, 2, 3,]
})
b1 = df.groupby(['col1', 'col2'], as_index=False)[['col3']].apply(lambda x: x+10)
b2 = df.groupby(['col1', 'col2'], as_index=False)['col3'].apply(lambda x: x+10)
print(b1)
print(b2)
b1将打印为:
col3
0 11
1 12
2 13
b2将打印为:
b
0 0 11
1 1 12
2 2 13
Name: col3, dtype: int64
我该如何使用组键列([''col1','col2']也将被打印为
col1 col2
A1 B1 11
A2 B1 12
A3 B2 13
当您打印每个groupby
object
的类型时,将看到Series
,它将在其前面有索引。 Github开放问题
df.groupby(['col1', 'col2'], as_index=False)['col3'].apply(lambda x: type(x) )
Out[11]:
col1 col2
A1 B1 <class 'pandas.core.series.Series'>
A2 B1 <class 'pandas.core.series.Series'>
A3 B2 <class 'pandas.core.series.Series'>
dtype: object
获得预期的输出
df.groupby(['col1', 'col2']).apply(lambda x: x['col3']+10).reset_index(level=-1,drop=True)
Out[32]:
col1 col2
A1 B1 11
A2 B1 12
A3 B2 13
Name: col3, dtype: int64
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.