![](/img/trans.png)
[英]Create a pandas Dataframe from a nested dict with row indices as dict keys and a dict with different columns per key
[英]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_longest
和pd.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.