GoC*_*rry 2 python dataframe pandas
pandas.DataFrame.droplevel
我可以使用级别名称或索引在某些位置保留多级索引/列的某些功能吗?
例:
df = pd.DataFrame([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
], columns=['a','b','c','d']).set_index(['a','b','c']).T
a 1 5 9 13
b 2 6 10 14
c 3 7 11 15
d 4 8 12 16
Run Code Online (Sandbox Code Playgroud)
以下两个命令都可以返回以下数据帧:
df.droplevel(['a','b'], axis=1)
df.droplevel([0, 1], axis=1)
c 3 7 11 15
d 4 8 12 16
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个“ keeplevel”命令,以便以下两个命令都可以返回以下数据帧:
df.keeplevel(['a','b'], axis=1)
df.keeplevel([0, 1], axis=1)
a 1 5 9 13
b 2 6 10 14
d 4 8 12 16
Run Code Online (Sandbox Code Playgroud)
没有,keeplevel
因为它是多余的:在一个封闭且定义明确的集中,当您定义要删除的内容时,您会自动定义要保留的内容
您可能会从拥有的东西和droplevel
得到的回报中得到不同。
def keeplevel(df, levels, axis=1):
return df.droplevel(df.axes[axis].droplevel(levels).names, axis=axis)
Run Code Online (Sandbox Code Playgroud)
>>> keeplevel(df, [0, 1])
a 1 5 9 13
b 2 6 10 14
d 4 8 12 16
Run Code Online (Sandbox Code Playgroud)