提问人:prashanth manohar 提问时间:11/13/2023 最后编辑:prashanth manohar 更新时间:11/13/2023 访问量:47
Pandas 数据透视表不返回任何值
Pandas Pivot Table returning no Values
问:
我有一个熊猫数据框,看起来像这样。df
import pandas as pd
url = "https://www-genesis.destatis.de/genesisWS/rest/2020/data/tablefile?username=DEB924AL95&password=P@ssword1234&name=42153-0002&area=all&compress=false&transpose=false&startyear=1900&endyear=×lices=®ionalvariable=®ionalkey=&classifyingvariable1=WERT03&classifyingkey1=BV4TB&classifyingvariable2=WZ08V2&classifyingkey2=&classifyingvariable3=&classifyingkey3=&format=xlsx&job=false&stand=01.01.1970&language=en"
df = pd.read_excel(url, engine='openpyxl')
df = df.iloc[5:-3]
df.columns = ['Variable', 'Date', 'Value']
m = df['Date'].isna()
df['Date'] += '-' + df['Variable'].ffill()
df['Variable'] = df['Variable'].where(m).ffill()
df
import numpy as np
# Reshape your dataframe
out = (df[~m].replace('...', np.nan)
.pivot_table(index='Date', columns='Variable',
values='Value', sort=False)
.reset_index().rename_axis(columns=None))
out
这只给了我一列,没有值。Date
Date
0 January-1991
1 February-1991
2 March-1991
3 April-1991
我需要做哪些更改才能使其正常工作?
答:
1赞
mozway
11/13/2023
#1
问题是您pivot_table
使用数字聚合(默认情况下),但您的数据不是数字。首先使用to_numeric
进行转换:mean
out = (df[~m].assign(Value=lambda d: pd.to_numeric(d['Value'], errors='coerce'))
.pivot_table(index='Date', columns='Variable',
values='Value', sort=False)
.reset_index().rename_axis(columns=None)
)
输出摘录:
Date WZ08-05 Mining of coal and lignite WZ08-06 Extraction of crude petroleum and natural gas WZ08-08 Other mining and quarrying WZ08-09 Mining support service activities \
0 January-1991 415.7 186.6 113.8 358.6
1 February-1991 409.6 187.7 114.6 360.3
2 March-1991 402.8 188.6 115.5 361.0
3 April-1991 397.0 189.6 116.6 361.3
4 May-1991 391.1 190.7 117.7 361.8
.. ... ... ... ... ...
388 May-2023 26.2 61.5 88.2 60.7
389 June-2023 25.2 60.8 87.4 66.6
390 July-2023 24.3 60.1 86.7 72.5
391 August-2023 23.4 59.5 85.9 78.1
392 September-2023 22.4 58.7 85.2 83.8
评论
0赞
prashanth manohar
11/13/2023
这与上周@Corralien解决的问题有何不同。数据源是相同的:stackoverflow.com/a/77446000/4399016
1赞
mozway
11/13/2023
如果问题是“为什么它在那里起作用”我不知道,但是在当前问题的链接数据集中,需要转换数据。无论如何,最好是明确的。
评论
m