Python Pandas中用data.drop删除指定列之后的所有列
Python Pandas中用data.drop删除指定列之后的所有列
在数据处理过程中,我们经常需要删除DataFrame中不需要的列。如果要删除指定列名之后的所有列,可以使用Pandas中的data.drop函数,并结合data.columns切片来实现。
假设我们有一个DataFrame名为data,想要删除'Genre'列之后的所有列,可以使用以下代码:
data.drop(data.columns[data.columns.get_loc('Genre')+1:], axis=1, inplace=True)
代码解释:
data.columns.get_loc('Genre'): 获取'Genre'列的索引位置。data.columns[data.columns.get_loc('Genre')+1:]: 从'Genre'列的下一列开始(包括该列)到最后一列的所有列名。axis=1: 表示按列删除。inplace=True: 表示直接在原数据上进行修改。
示例:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 28, 22],
'City': ['New York', 'London', 'Paris', 'Tokyo'],
'Genre': ['F', 'M', 'M', 'M'],
'Salary': [5000, 6000, 5500, 4800]}
df = pd.DataFrame(data)
print('原始DataFrame:')
print(df)
df.drop(df.columns[df.columns.get_loc('Genre')+1:], axis=1, inplace=True)
print('
删除 'Genre' 列之后的所有列:')
print(df)
输出:
原始DataFrame:
Name Age City Genre Salary
0 Alice 25 New York F 5000
1 Bob 30 London M 6000
2 Charlie 28 Paris M 5500
3 David 22 Tokyo M 4800
删除 'Genre' 列之后的所有列:
Name Age City Genre
0 Alice 25 New York F
1 Bob 30 London M
2 Charlie 28 Paris M
3 David 22 Tokyo M
通过以上步骤,我们成功地使用data.drop函数删除了指定列名之后的所有列。需要注意的是,inplace=True会直接修改原始数据,如果不想修改原始数据,可以将其设置为False,并将结果赋值给一个新的DataFrame。
原文地址: https://www.cveoy.top/t/topic/f0gy 著作权归作者所有。请勿转载和采集!