如何删除 pandas 中的多列(4 种方法)
您可以使用以下方法从 pandas DataFrame 中删除多列:
方法 1:按名称删除多列
df. drop (columns=[' col1 ', ' col2 ', ' col4 '], inplace= True )
方法 2:按名称删除范围中的列
df. drop (columns= df.loc [:, ' col1 ':' col4 '], inplace= True )
方法 3:按索引删除多列
df. drop (columns=df. columns [[0, 3, 4]], inplace= True )
方法 4:按索引删除范围中的列
df. drop (columns= df.columns [1:4], inplace= True )
注意: inplace=True参数告诉 pandas 删除就地列而不重新分配 DataFrame。
以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12], ' steals ': [4, 5, 10, 12, 4, 8, 7, 2]}) #view DataFrame print (df) team points assists rebounds steals 0 A 18 5 11 4 1 B 22 7 8 5 2 C 19 7 10 10 3 D 14 9 6 12 4 E 14 12 6 4 5 F 11 9 5 8 6 G 20 9 9 7 7:28 4 12 2
示例 1:按名称删除多列
以下代码显示如何按名称删除point 、篮板和抢断列:
#drop multiple columns by name df. drop (columns=[' points ', ' rebounds ', ' steals '], inplace= True ) #view updated Dataframe print (df) team assists 0 to 5 1 B 7 2 C 7 3 D 9 4 E 12 5 F 9 6 G 9 7:04 a.m.
示例 2:按名称删除范围中的列
以下代码显示如何按名称删除点和反弹列之间的每一列:
#drop columns in range by name df. drop (columns= df.loc [:, ' points ':' rebounds '], inplace= True ) #view updated Dataframe print (df) team steals 0 to 4 1 B 5 2 C 10 3 D 12 4 E 4 5 F 8 6 G 7 7 A.M. 2
示例 3:按索引删除多列
以下代码显示如何从 DataFrame 中删除索引位置 0、3 和 4 处的列:
#drop multiple columns by index df. drop (columns=df. columns [[0, 3, 4]], inplace= True ) #view updated Dataframe print (df) assist points 0 18 5 1 22 7 2 19 7 3 14 9 4 14 12 5 11 9 6 20 9 7 28 4
示例 4:按索引删除范围中的列
以下代码显示如何从 DataFrame 中删除索引位置 0、3 和 4 处的列:
#drop columns by index range df. drop (columns= df.columns [1:4], inplace= True ) #view updated Dataframe print (df) team steals 0 to 4 1 B 5 2 C 10 3 D 12 4 E 4 5 F 8 6 G 7 7 A.M. 2
请注意, df.columns[1:4]语法指定索引位置 1到4 中的列。
因此,此语法删除索引位置 1、2 和 3 处的列。
注意:您可以在此处找到 pandas drop()函数的完整文档。
其他资源
以下教程解释了如何在 pandas 中执行其他常见任务:
Pandas:如何删除具有 NaN 值的列
Pandas:如何删除不在列表中的列
Pandas:如何删除除特定列之外的所有列