使用Cmdline: /data/data/com.my.app_package/simpleperf record -p 10910 --duration 5
Arch: arm64
Event: cpu-cycles (type 0, config 0)
Samples: 0
Event count: 0
Overhead Command Pid Tid Shared Object Symbol
时,我对set_index
的行为感到惊讶。
MultiIndex
为什么In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: pd.__version__
Out[3]: '0.19.2'
In [4]: columns = pd.MultiIndex.from_tuples([('foo', 'a'), ('foo', 'b'), ('bar', 'c')])
In [5]: df = pd.DataFrame(np.random.randint(0, 10, (3,3)), columns=columns)
In [6]: df.set_index([('bar', 'c')]).columns
Out[6]:
MultiIndex(levels=[['bar', 'foo'], ['a', 'b', 'c']],
labels=[[1, 1], [0, 1]])
仍然是列的一部分?它似乎与非('bar', 'c')
列不同,因为通过设置索引,它会从列中消失。
感谢。
答案 0 :(得分:1)
确实很奇怪。它已经有一段时间了。
这是一个 [snarky] 非常方便的工作 [/ snarky]
通过将列名映射到自身来更改列名...
df.set_index([('bar', 'c')]).rename(
columns=df.columns.to_series().to_dict()).columns
MultiIndex(levels=[['foo'], ['a', 'b']],
labels=[[0, 0], [0, 1]])