更改pandas dataframe multiindex中的值

时间:2016-05-31 21:02:30

标签: python pandas dataframe multi-index

我有一个数据框列表,每个数据框都有一个多索引。一列是varName,另一列是'round'。

varName列中的值是数字。我有另一个数据帧,它是数字到标签的映射。我想在varName列上使用map(),但由于它是索引的一部分,因此没有varName列。

我试图复制varname列,或者让它不再是索引的一部分,但这些东西都不起作用。

2 个答案:

答案 0 :(得分:1)

如果varName是其中一个name级别的MultiIndex,您应该可以:

df.reset_index(level='varName')

varName转换为column,然后使用map()。如果varName不是name,您仍然可以使用level=0(或1)。

答案 1 :(得分:0)

也许你可以这样做:

df.reset_index(level=1).merge(df2)

这假设level = 1是两个dfs之间的公共列(例如' varName')。如果您愿意,可以使用set_index作为标签名称,例如:

df.reset_index(level=1).merge(df2).set_index(['labels'],append=True)