如何在熊猫中自动旋转数据

Posted

技术标签:

【中文标题】如何在熊猫中自动旋转数据【英文标题】: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')

非常感谢。:)

【问题讨论】:

【参考方案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 很容易,我只需要位置作为过滤器,我可以比较它。

以上是关于如何在熊猫中自动旋转数据的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫中旋转数据框[重复]

如何在一个视图不应该自动旋转而一个视图应该自动旋转的 iOS 应用程序中处理自动旋转?

如何在python中将文本字符串列表转换为熊猫数据框?

如何在 iPad 中自动旋转期间重新排列视图

在 Swiftui 中如何通过旋转到横向自动关闭模态

如何在熊猫数据框中展平数组