如何将多值dict类型映射到多个大熊猫列?



下面是一个相关的示例,它没有得到完全正确的答案(但很接近):Python Pandas根据字典键为Dataframe列分配字典值

我正在寻找一种方法,理想情况下,在一行代码中,将字典键映射到我的数据框架列。如果键匹配,我们应该将每个值解包到各自的列中。

import pandas as pd
d1 = {1231: 'val1, val2, val3',
1232: 'val1a, val2a, val3a'}
df = pd.DataFrame({'key': [1231, 1232]})
df[['val1', 'val2', 'val3']] = df['key'].apply(lambda x: d1.get(x))[0].split(', ')
df
# this will map the same values repeatedly
# and will break if the index is altered or removed

先用map再用str.split

df[['val1', 'val2', 'val3']] = df['key'].map(d1).str.split(', ',expand=True).values
df
key   val1   val2   val3
0  1231   val1   val2   val3
1  1232  val1a  val2a  val3a

最新更新