簡體   English   中英

熊貓groupby-應用缺少的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM