如何在熊猫中自动旋转数据
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 很容易,我只需要位置作为过滤器,我可以比较它。以上是关于如何在熊猫中自动旋转数据的主要内容,如果未能解决你的问题,请参考以下文章