[英]pandas.DataFrame: mappings a column of a list of keys to a column of the list of values
[英]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.