【问题标题】:Groupby or Transpose?分组还是转置?
【发布时间】:2020-09-26 23:32:59
【问题描述】:

我得到了这个数据

    country                     report_date market_cap_usd
0   Australia                   6/3/2020    90758154576
1   Australia                   6/4/2020    91897977251
2   Australia                   6/5/2020    94558861975
3   Canada                      6/3/2020    42899754234
4   Canada                      6/4/2020    43597908706
5   Canada                      6/5/2020    45287016456
6   United States of America    6/3/2020    1.16679E+12
7   United States of America    6/4/2020    1.15709E+12
8   United States of America    6/5/2020    1.19652E+12

想把它变成:

report_date Australia Canada ....
6/3/2020 90758154576 42899754234 ...
6/4/2020 91897977251 43597908706 ...

我该怎么做?

【问题讨论】:

  • 你能把你目前尝试过的代码包括进来
  • @sushanth 我不知道兄弟...
  • 您可能希望更具体地了解您正在寻找的转换。例如,为 2020 年 6 月 4 日添加第二行会更清楚。通常,这种变换称为枢轴。

标签: python pandas dataframe group-by pivot-table


【解决方案1】:

使用pivot_table

# setting minimum example 
import pandas

data = pandas.DataFrame({'country': ['Australia', 'Australia', 'Canada', 'Canada'], 
              'report_data': ['6/3/2020', '6/4/2020', '6/3/2020', '6/4/2020'], 
              'market_cap_usd': [923740927, 92797294, 20387334, 392738092] 
             })
# pivot the table
data = data.pivot_table(index='report_data', columns='country')

# drop multi-index column 
data.columns = [col[1] for col in data.columns]

输出;

            Australia   Canada
report_data         
6/3/2020    923740927   20387334
6/4/2020    92797294    392738092

【讨论】:

    猜你喜欢
    • 2020-04-19
    • 2018-02-02
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    相关资源
    最近更新 更多