[英]Compare list of dicts with pandas series and populate dict based on match
[英]Populate Pandas Series with list
我想用一個list
填充pd.Series()
。
我嘗試執行以下操作:
series = pd.Series(index=['a','b','c','d'])
series['a'] = 2
series['b'] = [2,3]
這是我得到的錯誤。 如何在pd.Series
填充list
?
File "C:\Users\Sergej Shteriev\Anaconda3\lib\site-packages\pandas\core\internals.py", line 940, in setitem
values[indexer] = value
ValueError: setting an array element with a sequence.
這是因為假定初始dtype為浮點型(因為該序列用NaN填充)。
series.dtype
# dtype('float64')
由於列表僅受object
類型列支持,因此需要在分配之前進行強制轉換。
series = series.astype(object)
series['b'] = [2, 3]
series
a 2 # this is still a float
b [2, 3]
c NaN
d NaN
dtype: object
series.tolist()
# [2.0, [[2, 3]], nan, nan]
一個更好的建議是,如果您打算將series
填充為對象,則應在開始時將其聲明為對象。
series = pd.Series(index=['a','b','c','d'], dtype=object)
series['a'] = 2
series['b'] = [2, 3]
series
a 2
b [2, 3]
c NaN
d NaN
dtype: object
series.tolist()
# [2, [2, 3], nan, nan]
當然,出於性能原因,我不容忍。 您最好使用python列表-它們通常比對象系列更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.