我有一个包含多索引列名的时间历史数据的pandas.DataFrame。多索引的一个级别是列的单位。我希望能够更改列的单位,这是相当简单的。不过,更改多索引来显示新的单元会让我感到困惑。
def units_change(df, current = 'mm', new = 'm', converter = lambda x: x/1000):
df.loc[:, (slice(None), current)] = df.loc[:, (slice(None), current)].apply(converter)
#something to change the `current` in the multi-index to `new` ('mm' -> 'm' by default)
return df我想我可以暴力地将多索引放入数组中,替换、重建和重新索引,但我希望有一些更简单的方法,我错过了。
发布于 2020-02-13 21:02:21
文档的这一部分没有起到作用吗?
rename方法可用于重命名DataFrame的主索引的特定标签。
>>> df
0 1
one y 0.1 1.2
x 0.2 1.3
zero y 2.3 2.4
x 2.4 2.7
>>>df.rename(index={"one": "two", "y": "z"})
0 1
two z 0.1 1.2
x 0.2 1.3
zero z 2.3 2.4
x 2.4 2.7https://stackoverflow.com/questions/60207952
复制相似问题