[英]Groupby, pivot and return all columns in a pandas dataframe
我有一個看起來像這樣的熊貓dataframe
:
col1 col2 col3 col4 col5 status count
0 AA PP X Y 13.1764 0 1.0
1 AA PP X Y 12.145 0 1.0
2 AA PP X Y 13.17 0 2.0
3 AA PP X Y 23.5 0 2.0
4 AA PP X Y 1100.4 0 2.0
5 AA PP X Y 20.5 0 3.0
6 AA PP X Y 1300.0 0 3.0
...
我正在嘗試做什么?
col1
分組count
分組col5
值col5
加到其他所有內容最終的數據框應如下所示:
AA col2 col3 col4 status count1 count2 count3
count 1.0 PP X Y 0 13.1764 12.145 NA
2.0 PP X Y 0 13.17 23.5 1100.4
3.0 PP X Y 0 20.5 1300.0 NA
我看過很多groupyby
和pivot
問題,相信我,我已經嘗試了很多,浪費了一個小時,但還是做對了。
如果每個組的所有列的值與示例數據中的相同,請使用GroupBy.cumcount
和pivot_table
:
g = df.groupby('count').cumcount()
df1 = (df.pivot_table(index=['col1','count','col2','col3','col4','status'],
columns=g,
values='col5')
.add_prefix('count')
.reset_index())
print (df)
col1 count col2 col3 col4 status count0 count1 count2
0 AA 1.0 PP X Y 0 13.1764 12.145 NaN
1 AA 2.0 PP X Y 0 13.1700 23.500 1100.4
2 AA 3.0 PP X Y 0 20.5000 1300.000 NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.