具有具有键值的字典,我们如何映射其值以填充数据框中的不同列。 尝试使用 apply 函数填充多个数据框列,其中该函数包含值列表范围内的迭代,但没有成功。有帮助吗?
插图:
{'k1':['v1', 'v2'], 'k2':['v3', 'v4', 'v5']}
所需结果(数据框):
col1 col2 col3
k1 v1 v2
k2 v3 v4 v5
答案 0 :(得分:0)
这是使用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