【问题标题】:How to automatically pivot data in pandas如何在熊猫中自动旋转数据
【发布时间】:2021-10-01 17:39:32
【问题描述】:

我习惯于使用 Excel 并尝试学习 Python,尤其是 Pandas。我的目标是用 Plotly/Dash 绘制一个大型数据集。我的数据集看起来很像 Pandas 教程中的数据集。我有更多的参数,并且有 20 个位置,还有更多的位置。

                       date.utc            location parameter  value
2067  2019-05-07 01:00:00+00:00  London Westminster        no   23.0
2068  2019-05-07 01:00:00+00:00  London Westminster       no2   45.0
2069  2019-05-07 01:00:00+00:00  London Westminster      pm25   11.0
1003  2019-05-07 01:00:00+00:00             FR04014       no2   25.0
100   2019-05-07 01:00:00+00:00             BETR801      pm25   12.5
1098  2019-05-07 01:00:00+00:00             BETR801       no2   50.5
1109  2019-05-07 01:00:00+00:00  London Westminster        co    8.0

我使用 pd.read_csv 导入文件,然后手动为每个位置和每个参数创建一个数据透视表,并使用单独的变量,这是一项相当艰巨的工作。

有没有办法自动旋转这些数据?我想要分组的位置和每个参数的列。我的目标是将这些数据放在破折号中,在顶部我想要一个带有位置的下拉菜单,在右侧我想选择 no、no2、pm .... 每个参数都有单独的轴标签。

我在堆栈溢出时发现此代码 here 并尝试对其进行调整,但它不起作用。

df = pd.read_csv('https://api.statbank.dk/v1/data/mpk100/CSV?valuePresentation=Value&timeOrder=Ascending&LAND=*&Tid=*', sep=';')
df = df[df['INDHOLD'] != '..']
df['rate'] = df['INDHOLD'].str.replace(',', '.').astype(float)
available_countries = df['LAND'].unique()
df.groupby('LAND')

非常感谢。:)

【问题讨论】:

    标签: python pandas dataframe plotly plotly-dash


    【解决方案1】:

    如果我理解正确的话:

    x = df.pivot(["date.utc", "location"], "parameter", "value")
    print(x)
    

    打印:

    parameter                                      co    no   no2  pm25
    date.utc                  location                                 
    2019-05-07 01:00:00+00:00 BETR801             NaN   NaN  50.5  12.5
                              FR04014             NaN   NaN  25.0   NaN
                              London Westminster  8.0  23.0  45.0  11.0
    

    【讨论】:

    • 谢谢!我想我想复杂了。是否还有机会分组处理位置以比较不同位置的价值每小时发展?在 Excel 中,pover pivot 很容易,我只需要位置作为过滤器,我可以比较它。
    猜你喜欢
    • 2020-02-24
    • 1970-01-01
    • 2022-01-21
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2014-01-04
    相关资源
    最近更新 更多