簡體   English   中英

用列表填充熊貓系列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM