簡體   English   中英

轉置部分熊貓數據幀

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

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