繁体   English   中英

熊猫groupby与转置相关问题

[英]Pandas groupby and transpose related problem

目前,我正在研究熊猫数据框。 面临与分组操作有关的问题。 我的数据框是-

Name    A          Job       B
A      Online      Govt      22
B      Offline     Pvt       50
C      Others      Other     33
A      Others      Govt      62
B      Online      Pvt       18
C      Offline     Other     35
A      Offline     Govt      53
B      Online      Pvt       75
C      Others      Other     74

我的最终输出应该是-

Name   Offline    Online   Others   Govt   Pvt  Other
A       53        20        62        1      0    0
B       50        18        75        0      1    0
C       35        74        33        0      0    1

我已经完成了以下代码-

data = pd.read_csv('/Users../pandas_data/abc1.csv')
df3 = data.groupby(['Name', 'A'])['B']\
   .first()\
   .unstack(fill_value='NA')\
   .rename_axis(None, 1)

提前致谢。

您应该看一下pandas的pivot_table ,对于输出的第二部分,您可以使用

pd.pivot_table(
    data=df.drop(columns='A'),
    index=['Name'],
    columns=['Job'],
    aggfunc=lambda x: int(len(x) > 0),
    fill_value=0
)

这将产生

        B          
Job  Govt Other Pvt
Name               
A       1     0   0
B       0     0   1
C       0     1   0

然后在第一部分做类似的事情(不知道如何解释.. ),例如

pd.pivot_table(
    data=df.drop(columns='Job'),
    index=['Name'],
    columns=['A'],
    aggfunc= # depends on what you expect
)

最后使用concataxis=1串联。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM