首页 > 解决方案 > 如何在 Pandas MultiIndex Dataframes 中获取和设置单个值

问题描述

我定义了一个MultiIndex数据框,如下所示:

columns = pd.MultiIndex.from_product(
    [assets, ['A', 'B', 'C']], 
    names=['asset', 'var']
)
res = pd.DataFrame(0, index=data.index, columns=columns)

但是,我没有成功设置或更新this 的单个Dataframe。有什么建议吗?或者我应该转向使用numpy数组 - 因为效率?

标签: pythonpandasmulti-indexsetter

解决方案


与元组一起使用DataFrame.loc选择 MultiIndex 列并设置新值,例如:

assets = ['X','Y']
columns = pd.MultiIndex.from_product(
    [assets, ['A', 'B', 'C']], 
    names=['asset', 'var']
)
res = pd.DataFrame(0, index=range(3), columns=columns)
print (res)
asset  X        Y      
var    A  B  C  A  B  C
0      0  0  0  0  0  0
1      0  0  0  0  0  0
2      0  0  0  0  0  0

res.loc[0, ('X','B')] = 100
print (res)
asset  X          Y      
var    A    B  C  A  B  C
0      0  100  0  0  0  0
1      0    0  0  0  0  0
2      0    0  0  0  0  0

推荐阅读