繁体   English   中英

将字典中的多个值(每个键)映射并附加到数据框的不同列

[英]Map & append multiple values (per each key) from a dict to different columns of a dataframe

包含具有键值的字典,我们如何映射其值以填充数据框中的不同列。 尝试使用apply函数填充多个数据框列,其中该函数包含值列表范围内的迭代,但未成功。 有什么帮助吗?

插图:

{'k1':['v1', 'v2'], 'k2':['v3', 'v4', 'v5']}

所需结果(数据帧):

    col1  col2  col3
k1  v1    v2
k2  v3    v4    v5

这是使用itertools.zip_longestpd.DataFrame构造函数的一种方法:

from itertools import zip_longest

d = {'k1':['v1', 'v2'], 'k2':['v3', 'v4', 'v5']}

enum = enumerate(zip_longest(*d.values(), fillvalue=np.nan), 1)

df = pd.DataFrame(dict(enum), index=d).add_prefix('col')

使用格式化字符串文字的另一种表示形式(Python 3.6+; PEP498 ):

df = pd.DataFrame({f'col{i}': tup for i, tup in enum}, index=d)

结果:

print(df)

   col1 col2 col3
k1   v1   v2  NaN
k2   v3   v4   v5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM