我有以下 python 字典:
sdata ={'Ohio': 35000, 'Oregon': 16000, 'Texas': 71000, 'Utah': 5000}
假設我想從這本字典中創建熊貓系列。由于某些原因,我想用附加列構建系列:
states = ['California', 'Damascus','Ohio', 'Oregon', 'Texas','Regensburg', 'Munich']
obj4 = pd.Series(sdata, index=states)
obj4
輸出將是:
California NaN
Damascus NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
Regensburg NaN
Munich NaN
dtype: float64
在這種情況下,在發現SDATA 3個值被放置在適當的位置,但是由于沒有對值California,Damascus,Regensburg,和Munich被發現,它們顯示為NaN。換句話說,沒有對應值的索引sdata將顯示為NaN。
但是,當我嘗試從串列創建系列時它不起作用:
labels = ['Covid', 'Delta', 'Omicron', 'Mu']
obj2 = pd.Series([1.5, -2.5, 0], index=labels)
obj2
錯誤資訊:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-87-3f289c72627f> in <module>()
1 # use the above created index object as an index in this Serie
----> 2 obj2 = pd.Series([1.5, -2.5, 0], index=labels)
3 obj2
/usr/local/lib/python3.7/dist-packages/pandas/core/series.py in __init__(self, data, index, dtype, name, copy, fastpath)
312 if len(index) != len(data):
313 raise ValueError(
--> 314 f"Length of passed values is {len(data)}, "
315 f"index implies {len(index)}."
316 )
ValueError: Length of passed values is 3, index implies 4.
我不明白為什么我會收到此訊息錯誤,盡管NaN在第一種情況下允許使用值創建系列?
先感謝您!
uj5u.com熱心網友回復:
pd.Series僅與字典一起使用,然后添加Series.reindex:
obj4 = pd.Series(sdata).reindex(states)
如果通過串列創建是必要的,那么首先需要與資料串列一樣的索引長度,例如,對于長度3過濾串列的前 3 個值labels:
labels = ['Covid', 'Delta', 'Omicron', 'Mu']
obj2 = pd.Series([1.5, -2.5, 0], index=labels[:3]).reindex(labels)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369433.html
上一篇:按值計數的標簽編碼
