首页 > 解决方案 > 如何在熊猫中自动旋转数据

问题描述

我习惯于使用 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 .... 每个参数都有单独的轴标签。

我在堆栈溢出时在这里找到了这段代码,并试图为我调整它,但它不起作用。

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')

提前谢谢了。:)

标签: pythonpandasdataframeplotlyplotly-dash

解决方案


如果我理解正确:

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

推荐阅读