【发布时间】:2024-01-14 14:15:01
【问题描述】:
我想(通过字典)将 MultiIndex DataFrame 的一部分映射到列。有没有办法一步完成?
例如,使用以下示例 DataFrame:
i = pd.MultiIndex.from_product([['A','B','C'], np.arange(1, 11, 1)], names=['Name','Num'])
df = pd.DataFrame(np.random.randn(30), i, columns=['Vals'])
和示例地图:
a = list('abcdefghijk')
m = {}
for i in range(0,11):
m[i] = a[i]
我想创建一个 X 列,其中包含与第二个索引级别关联的字母:
df.assign(X=m[df.index.get_level_values('Num').values])
但这不起作用,也不起作用:
df['X'] = df.index.map(lambda x: m[x[1]])
【问题讨论】:
标签: python pandas dictionary dataframe multi-index