Python机器学习:drop()删除行列

在数据分析中,drop()函数常用于特征工程和数据集划分。它可以删除DataFrame的行或列。例如,删除无关或冗余的特征,将因变量从自变量中分离,以及在创建训练集后从原始数据中提取测试集。操作时,需指定labels、axis(0表示行,1表示列)、inplace参数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行特征工程、划分数据集的工作中,drop()函数都能派上用场。它可以轻松剔除数据、操作列和操作行等。

drop()详细的语法如下:

删除行是index,删除列是columns:

DataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False)

参数:

labels:要删除的行或列的标签,可以是单个标签,也可以是标签列表。

axis:要删除的行或列的轴,0表示行,1表示列。

index:要删除的行的索引,可以是单个索引,也可以是索引列表。

columns:要删除的列的列名,可以是单个列名,也可以是列名列表。

inplace:是否在原DataFrame上进行操作,默认为False,即不在原DataFrame上进行操作。


删除列

使用场景1:删除不需要的特征。

例如:有些特征对结果的影响不大,就可以把与因变量不相关的自变量删掉;为了避免多重共线性,要把有强相关关系的自变量删掉。

df = data.drop(data[['RowNumber','CustomerId','Surname']],axis=1)
df

代码讲解:

data是数据集,两个中括号代表DataFrame格式,里面筛选了3个要删除的字段;

axis=1代表操作列;

运行结果:


使用场景2:把因变量删掉

# 自变量、因变量
x_data = df.drop(['Exited'],axis=1)
y_data = df['Exited']
x_data

代码讲解:

drop()函数里面填写要删除的字段,表示从df中删除名为“Exited”的列;

['Exited']这一个字段是我们要剔除的因变量,单个字段可以这样表示;

运行结果:


删除行

使用场景3:在划分数据集的时候,生成了训练集,把被分到训练集的样本剔除掉,剩下的就是测试集了。

#划分训练集
train_data = data.sample(frac = 0.8, random_state = 0)
#测试集
test_data = data.drop(train_data.index)

代码讲解:

drop()函数里面填行索引可以删除掉行;

train_data是我们划分好的训练集,train_data.index表示行索引;

axis=0,表示的是删除行,也可以不写,是默认值;

### Pandas 在机器学习中的基本操作 #### 数据加载与查看 Pandas 提供了多种方法来加载不同类型的文件,例如 CSV 文件、Excel 表格等。`read_csv()` 是最常用的方法之一用于加载 CSV 文件[^2]。 ```python import pandas as pd # 加载CSV文件 data = pd.read_csv('example.csv') # 查看前几行数据 print(data.head()) # 获取基本信息 print(data.info()) ``` #### Series 和 DataFrame 的概念 在 Pandas 中,两种主要的数据结构分别是 `Series` 和 `DataFrame`。 - **Series** 是一维数组对象,它能够保存任何类型的数据,并且带有一个关联的索引。 - **DataFrame** 则是一种二维表形式的数据结构,具有行列索引,每一列可以有不同的值类型[^3]。 ```python # 创建一个简单的Series s = pd.Series([1, 3, 5, np.nan, 6, 8]) print(s) # 创建一个简单的DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': ['foo', 'bar', 'baz'] }) print(df) ``` #### 数据清洗 数据清洗是机器学习项目的重要部分,在此过程中会涉及缺失值处理、重复值检测等内容。以下是几个常见的例子: - 处理缺失值:可以通过删除或者填充的方式解决。 - 删除重复项:通过 `.drop_duplicates()` 方法实现。 ```python # 填充缺失值 data.fillna(value=0, inplace=True) # 或者删除含有缺失值的行 data.dropna(inplace=True) # 移除重复记录 data.drop_duplicates(inplace=True) ``` #### 特征工程 特征工程是指通过对原始数据进行转换从而提取更多有用的信息的过程。这可能包括创建新变量、编码分类变量等步骤[^1]。 - 对于类别型变量,通常采用 One-Hot 编码方式将其转化为数值表示; - 数值型变量则可能会经历标准化或归一化过程以便模型训练更加高效稳定。 ```python from sklearn.preprocessing import LabelEncoder, StandardScaler # 使用Label Encoder对分类变量进行编码 le = LabelEncoder() data['category'] = le.fit_transform(data['category']) # 应用Standard Scaler到数值字段上 scaler = StandardScaler() scaled_values = scaler.fit_transform(data[['value']]) data['scaled_value'] = scaled_values ``` #### 可视化支持 虽然 Matplotlib 是 Python 主流绘图库,但是 Pandas 封装了一些常用的可视化功能使得绘制简单图形变得非常容易。 ```python # 绘制直方图 data.hist(column='age', bins=20) # 显示箱线图 data.boxplot(column=['height']) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值