我一直试图了解Pandas的多指数方法。我想删除" std"分栏,但却徒劳无功。
如何做到这一点?
attribute attribute2 \
test1 std test2
d count type
r1 10 rx 0.559 (0.0) 0.559 (0.0) 0.568 (0.0)
sth1 0.653 (0.004) 0.653 (0.004) 0.679 (0.002)
sth2 0.584 (0.002) 0.584 (0.002) 0.586 (0.003)
sth3 0.651 (0.005) 0.651 (0.005) 0.676 (0
我相信我似乎无法理解https://pandas.pydata.org/pandas-docs/stable/generated/pandas.MultiIndex.drop.html功能。
结果数据帧因此应该只有两个平均列,没有"标准" 非常感谢你。
答案 0 :(得分:3)
我认为最好删除std
的所有列,MultiIndex
使用drop
的第二级参数level=1
:
print (df)
attribute attribute2 attribute3
test1 std test2 std test3 std
d count type
r1 10 rx 0.559 (0.0) 0.559 (0.0) 0.568 (0.0)
sth1 0.653 (0.004) 0.653 (0.004) 0.679 (0.002)
sth2 0.584 (0.002) 0.584 (0.002) 0.586 (0.003)
sth3 0.651 (0.005) 0.651 (0.005) 0.676 (0)
df = df.drop('std', axis=1, level=1)
print (df)
attribute attribute2 attribute3
test1 test2 test3
d count type
r1 10 rx 0.559 0.559 0.568
sth1 0.653 0.653 0.679
sth2 0.584 0.584 0.586
sth3 0.651 0.651 0.676
答案 1 :(得分:0)
一位同事提醒我,我没有正确使用列的索引。要从多索引数据框对象中删除列,我只需执行以下操作:
f2 = f2.drop([('accuracy','std')],axis=1).drop([('F1','std')],axis=1)