简体   繁体   English

如何将熊猫数据框转换为多级列

[英]How to pivot pandas data frame into multi level columns

I have df like below 我有下面的df

    Date        Ad_Source   Revenue eCPM  Impressions
0   2019-07-06  AdColony    50.62   269.57  17640
1   2019-07-06  AdMob       519.23  361.79  370855
2   2019-07-06  AppLovin    0.00    NaN       0
3   2019-07-06  Cross P     0.00    NaN   0
4   2019-07-06  Facebook    13.58   96.68   2507

I need to pivot into likr 我需要深入了解

                 AdColony                               AdMob            
date     Revenue   eCPM  Impressions     Revenue   eCPM  Impressions


I need to pivot into likr 我需要深入了解

                 AdColony                               AdMob            
date     Revenue   eCPM  Impressions     Revenue   eCPM  Impressions


column in multilevel 多级列

Use DataFrame.unstack : 使用DataFrame.unstack

df = df.set_index(['Date', 'Ad_Source']).unstack(level=[0]).T.unstack(level=[0])

print(df)
Ad_Source  AdColony                       AdMob                     AppLovin  \
            Revenue    eCPM Impressions Revenue    eCPM Impressions  Revenue   
Date                                                                           
2019-07-06    50.62  269.57     17640.0  519.23  361.79    370855.0      0.0   

Ad_Source                   Cross P                  Facebook         \
           eCPM Impressions Revenue eCPM Impressions  Revenue   eCPM   
Date                                                                   
2019-07-06  NaN         0.0     0.0  NaN         0.0    13.58  96.68   

Ad_Source               
           Impressions  
Date                    
2019-07-06      2507.0  

Lots of ways to do this, you may be happy to just use the pandas .groupby() method to return a pivot table like format. 有很多方法可以执行此操作,您可能很高兴只使用pandas .groupby()方法来返回数据透视表,例如format。

new_df = df.groupby(['Ad_Source'])

Here's a video resource if you need more help about the groupby methods. 如果您需要有关groupby方法的更多帮助,请访问以下视频资源

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

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