简体   繁体   English

更改熊猫数据帧多索引中的值

[英]Changing values in a pandas dataframe multiindex

I have a list of dataframes, each has a multi-index.我有一个数据框列表,每个都有一个多索引。 one column is a varName, the other is 'round'.一列是 varName,另一列是“round”。

The values in the varName column are numbers. varName 列中的值是数字。 I have another dataframe that is a mapping of the numbers to labels.我有另一个数据框,它是数字到标签的映射。 I want to use map() on the varName column, but since it's part of the index, there IS no varName column.我想在 varName 列上使用 map(),但由于它是索引的一部分,因此没有 varName 列。

I've tried to copy the varname column, or make it not part of the index anymore, but none of these things seem to work.我试图复制 varname 列,或者让它不再是索引的一部分,但这些东西似乎都不起作用。

If varName is the name of one of the MultiIndex levels, you should be able to:如果varNameMultiIndex级别之一的name ,您应该能够:

df.reset_index(level='varName')

to convert varName to a column and then use map() .varName转换为column ,然后使用map() If varName is not the name , you should still be able to use level=0 (or 1 ).如果varName不是name ,您应该仍然可以使用level=0 (或1 )。

maybe you can do something like:也许你可以这样做:

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

this is assuming level=1 is your common column (eg 'varName') between two dfs.这是假设 level=1 是两个 dfs 之间的公共列(例如“varName”)。 if you wish you can than set_index for the label name, like:如果您愿意,您可以使用 set_index 作为标签名称,例如:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM