如何删除pandas数据帧上的多个列

2024-04-24 05:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,我一直在尝试删除2列的Excel数据框在熊猫,使用这样的一个删除命令

energy = energy.drop(energy.columns[[0 , 1]], axis= 1 )

但是,我无法避开视图中的列。最后,我感觉到我要删除的列作为一个多级索引出现在我的机器上。最后我试着像这样把一个关卡掉下来

^{pr2}$

但我还是无法避免这些专栏。在

我附上了我作品的屏幕副本enter image description here


Tags: columns数据命令机器视图屏幕excel作品
3条回答

尝试简单地重命名列

说你有

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]])

那么

^{pr2}$

瞧,瞧

In: df.columns

Out: Index(['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR VEHICLE', 
     'TMAX',
     'TMIN'],
     dtype='object')

不必删除列,您可以将数据帧子集如下:

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设置为一个变量。 如果要删除的列不相邻,可以循环查看要删除的列列表:

^{pr2}$

如果确实要删除列,可以使用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

相关问题 更多 >