[英]Transposing part of a pandas dataframe
我有以下數據幀:
>>> df
Out[15]:
group type amount number
0 group_A buy 100 123
1 group_A view 0 111
2 group_B view 0 222
3 group_A view 0 222
我想轉動數據,以便我最終得到:
type group_A group_B
0 amount buy 100 0
1 number buy 0 123
2 number view 333 222
我該如何做到這一點?
使用:
df=pd.DataFrame([['group_A','buy',100,123],['group_A','view',0,111],['group_B','view',0,222],['group_A','view',0,222]],columns=['group','type','amount','number'])
首先對指數求和並定位:
>>> df = df.groupby(['type','group']).sum().transpose().stack(0).reset_index()
>>> df
group level_0 type group_A group_B
0 amount buy 100 NaN
1 amount view 0 0
2 number buy 123 NaN
3 number view 333 222
刪除全部為零的行:
df = df[~((df['group_A']==0) | (df['group_B']==0))]
Fillna的:
>>> df.fillna(0)
group level_0 type group_A group_B
0 amount buy 100 0
2 number buy 123 0
3 number view 333 222
在這里的一些地方有點猜測,但它應該給你一個開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.