![](/img/trans.png)
[英]Transposing column values into rows and grouping them based on value of another column
[英]Grouping by unique values while transposing column
前幾天,我用來自兩列的數據問了一個類似的問題:
現在我有三列。 它們需要按A列分組,其中B列作為標題值,C列正確排序。
我的數據框如下所示:
A B C
25115 20 45
25115 30 154
25115 40 87
25115 70 21
25115 90 74
26200 10 48
26200 20 414
26200 40 21
26200 50 288
26200 80 174
26200 90 54
但是我需要結束這個:
10 20 30 40 50 70 80 90
25115 45 154 87 21 74
26200 48 414 21 288 174 54
這將獲取列C的值,但不使用列B作為行名。
import pandas as pd
df = pd.DataFrame({'A':[25115,25115,25115,25115,25115,26200,26200,26200,26200,26200,26200],'B':[20,30,40,70,90,10,20,40,50,80,90],'C':[45,154,87,21,74,48,414,21,288,174,54]})
a = df.groupby('A')['C'].apply(lambda x:' '.join(x.astype(str)))
任何想法將不勝感激。
使用數據透視表:
df.pivot_table(values='C',index='A',columns='B')
產量
B 10 20 30 40 50 70 80 90
A
25115 NaN 45.0 154.0 87.0 NaN 21.0 NaN 74.0
26200 48.0 414.0 NaN 21.0 288.0 NaN 174.0 54.0
使用set_index / unstack:
df.set_index(['A','B'])['C'].unstack()
輸出:
B 10 20 30 40 50 70 80 90
A
25115 NaN 45.0 154.0 87.0 NaN 21.0 NaN 74.0
26200 48.0 414.0 NaN 21.0 288.0 NaN 174.0 54.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.