1 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果可以暫時(shí)或永久升級(jí)到較新版本的 pandas,請(qǐng)嘗試升級(jí)到較新版本的 pandas,因?yàn)閜ivot早期版本的 pandas 中存在錯(cuò)誤。
例如,您可以這樣做:pip install pandas==1.1.3升級(jí)到他們修復(fù)的特定版本pivot。
pip install pandas==1.1.3
# then restart the kernel
import pandas as pd
# df = ....
df = pd.pivot(df, values='value', index=['referenceDate', 'CompanyId'], columns=['data_item', 'N'])
df
Out[1]:
data_item A
N 1 2 3
referenceDate CompanyId
2020-01-31 1 0.1 NaN NaN
2 NaN 0.2 NaN
3 NaN NaN 0.3
然后,您可以隨時(shí)返回pip install pandas==0.25.3。您可以通過(guò) jupyter notebok 完成這一切。確保每次切換版本時(shí)都重新啟動(dòng)內(nèi)核。
我當(dāng)前的 pandas 版本是1.0.1,所以我也收到同樣的錯(cuò)誤!
pip install pandas==1.0.1
#restart kernel
import pandas as pd
#df = ...
df = pd.pivot(df, values='value', index=['referenceDate', 'CompanyId'], columns=['data_item', 'N'])
df
錯(cuò)誤:
ValueError Traceback (most recent call last)
<ipython-input-2-11248dbe0eba> in <module>
1 df = d.copy()
----> 2 df = pd.pivot(df, values='value', index=['referenceDate', 'CompanyId'], columns=['data_item', 'N'])
3 df
C:\Users\david.erickson\Anaconda3\lib\site-packages\pandas\core\reshape\pivot.py in pivot(data, index, columns, values)
445 )
446 else:
--> 447 indexed = data._constructor_sliced(data[values].values, index=index)
448 return indexed.unstack(columns)
449
C:\Users\david.erickson\Anaconda3\lib\site-packages\pandas\core\series.py in __init__(self, data, index, dtype, name, copy, fastpath)
290 if len(index) != len(data):
291 raise ValueError(
--> 292 f"Length of passed values is {len(data)}, "
293 f"index implies {len(index)}."
294 )
ValueError: Length of passed values is 3, index implies 2.
添加回答
舉報(bào)