Python 如何在数据帧上删除多列
大家好,我一直在尝试在pandas上放置2列Excel数据框,使用这样的drop命令Python 如何在数据帧上删除多列,python,pandas,Python,Pandas,大家好,我一直在尝试在pandas上放置2列Excel数据框,使用这样的drop命令 energy = energy.drop(energy.columns[[0 , 1]], axis= 1 ) energy.index = energy.index.droplevel(2) 但是,我无法避免查看这些列。最后,我感觉到我应该删除的列在我的机器上是一个多级索引。最后我试着像这样从它上面掉一个关卡 energy = energy.drop(energy.columns[[0 , 1]], ax
energy = energy.drop(energy.columns[[0 , 1]], axis= 1 )
energy.index = energy.index.droplevel(2)
但是,我无法避免查看这些列。最后,我感觉到我应该删除的列在我的机器上是一个多级索引。最后我试着像这样从它上面掉一个关卡
energy = energy.drop(energy.columns[[0 , 1]], axis= 1 )
energy.index = energy.index.droplevel(2)
但我仍然无法设法避免这些专栏
我已经附加了我的工作的屏幕副本而不是删除列,您可以像这样对数据框进行子集:
In [3]: mydf = pd.DataFrame({"A":[1,2,3,4],"B":[4,3,2,1], "C":[3,4,5,3],"D":[6,4,3,2]})
In [4]: mydf
Out[4]:
A B C D
0 1 4 3 6
1 2 3 4 4
2 3 2 5 3
3 4 1 3 2
In [5]: mydf[mydf.columns[2:]]
Out[5]:
C D
0 3 6
1 4 4
2 5 3
3 3 2
例如,如果您试图删除前两列,这将起作用。它的工作原理是创建一个包含df.columns
的列表,然后将其子集并应用于数据帧。然后,您可能希望将新的dataframe设置为一个变量。
如果要删除的列不相邻,则可以循环查看要删除的列列表:
In [7]: mydf1 = mydf.copy()
In [8]: for col in ["A","D"]:
...: mydf1 = mydf1.drop(col,axis=1)
In [9]: mydf1
Out[9]:
B C
0 4 3
1 3 4
2 2 5
3 1 3
如果确实要删除列,可以使用
del
:
>>> df = pd.DataFrame({'A':range(3),'B':list('abc'), 'C':range(3,6), 'D':list('gde')})
>>> for x in ['A', 'B']:
... del df[x]
...
>>> df
C D
0 3 g
1 4 d
2 5 e
这可能会有帮助
energy.drop(energy.columns[[0,1]] , axis=1, inplace=True)
尝试简单地重命名列 说你有
In: df.columns
Out: MultiIndex(levels=[['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR
VEHICLE', 'TMAX', 'TMIN'], ['count', 'mean']],
labels=[[0, 1, 2, 3, 4], [0, 0, 0, 1, 1]])
然后
瞧
In: df.columns
Out: Index(['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR VEHICLE',
'TMAX',
'TMIN'],
dtype='object')
考虑输入您的代码,而不是通过IMAP.DUPE链接到它: