【问题标题】:Pandas Dataframe - reducing number of columns (destructuring data)Pandas Dataframe - 减少列数(解构数据)
【发布时间】:2020-07-14 19:02:55
【问题描述】:

我有一个如下所示的数据框,按国家/地区跟踪销售额:

列:

Day,美国,墨西哥,加拿大

“2020-01-01”, 5, 10, 15

“2020-01-02”, 10, 15, 20

但我想减少列数以使其更易于使用:

希望的输出:

日期、国家/地区、销售额

“2020-01-01”,美国,5

“2020-01-01”,墨西哥,10

“2020-01-01”,加拿大,15

有没有简单的方法来做到这一点? 我目前的想法是创建三个单独的数据框: df1:日,美国 df2:墨西哥的一天 df3:加拿大日

然后将它们一一连接起来:

df_new = pd.concat([df1,df2], axis = 1, sort =False)

df_new_new = pd.concat([df_new,df3]),axis = 1, sort = False)

我在这里问的原因是我认为会有一种更简单的方法,并希望找出这种数据表/df的“解构”是否有官方术语。

谢谢

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    使用melt 函数。在这种情况下:

    df_new = df.melt('Day', var_name='Country', value_name='Sales')
    

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.melt.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多