簡體   English   中英

Pandas 鍵列表列和值列表列到字典列表的列

[英]Pandas column of list of keys and column of list of values to a column of a list of dictionaries

我有一個 pandas dataframe,一列包含字符串類型列表的數據值。 另一列包含 integer 類型列表的數據值。 這可能看起來像

           keys             values
0  ['key1','key2','key3']  [0,1,2]
1  ['key1','key2','key3']  [4,5,6]
2  ['key2','key1','key3']  [7,3,6] 

我想做的是有一列字典類型值,例如,

           keys             values               dicts
0  ['key1','key2','key3']  [0,1,2]   {'key1':0,'key2':1,'key3':3}
1  ['key1','key2','key3']  [4,5,6]   {'key1':4,'key2':5,'key3':6}
2  ['key2','key1','key3']  [7,3,6]   {'key2':7,'key1':3,'key3':6} 

假設兩列中的兩個列表都是有序的,這樣 df['keys'][0][0] 將對應於 df['values'][0][0] 等。

理想情況下,我想做一個簡短的 dict 理解來實現這一點。 我的思考過程使我嘗試了以下方式:

df['dicts'] = {k:v for (k,v) in [x for x in zip(df['keys'], df['values'])]}

沒有成功,產生類型錯誤:

<Ipython-input-416-0c2823a27ccf> in <module>
----> 1 df['dicts']= dict(zip(df['keys'], df['values']))

TypeError: unhashable type: 'list'

也:

df['dicts']= dict(zip(df['keys'], df['values']))

失敗,產生以下類型錯誤:

<Ipython-input-416-0c2823a27ccf> in <module>
----> 1 df['dicts']= dict(zip(df['keys'], df['values']))

TypeError: unhashable type: 'list'

嘗試:

df['dicts'] = [dict(zip(x,y)) for x,y in zip(df['keys'], df['values'])]

或解包:

df['dicts'] = [dict(zip(*u)) for u in zip(df['keys'], df['values'])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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