【问题标题】:How to change columns to rows with pandas?如何使用熊猫将列更改为行?
【发布时间】:2020-05-11 08:24:01
【问题描述】:

这是我的 df:

import pandas as pd

categoria = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
dados1 = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
dados2 = [144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2]

df = pd.DataFrame([dados1, dados2], columns = categoria)
print(df)
     Jan    Feb    Mar    Apr    May  ...    Aug    Sep    Oct    Nov    Dec
0   29.9   71.5  106.4  129.2  144.0  ...  148.5  216.4  194.1   95.6   54.4
1  144.0  176.0  135.6  148.5  216.4  ...   54.4   29.9   71.5  106.4  129.2

但我想要这样的东西:

     dados1   dados2
Jan    29.9    144.0
Feb    71.5    176.0
Mar   106.4    135.6

到目前为止我尝试了什么:

df1 = pd.pivot_table(df, index = categoria, columns = [dados1, dados2])

但我有一个错误:

ValueError: Grouper and axis must be same length

我该怎么办?

【问题讨论】:

标签: python pandas dataframe rows


【解决方案1】:

IIUC

df = pd.DataFrame(zip(dados1, dados2), index = categoria)
df
         0      1
Jan   29.9  144.0
Feb   71.5  176.0
Mar  106.4  135.6
Apr  129.2  148.5
May  144.0  216.4
Jun  176.0  194.1
Jul  135.6   95.6
Aug  148.5   54.4
Sep  216.4   29.9
Oct  194.1   71.5
Nov   95.6  106.4
Dec   54.4  129.2

【讨论】:

    【解决方案2】:

    我认为您可以使用 transpose() 函数并根据需要重命名列。

    df=df.transpose()
    df.columns=['dados1','dados2']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-15
      • 2022-10-06
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      相关资源
      最近更新 更多