python删除替换dataframe中nan的方法——dropna()用法

本文详细介绍了如何使用Python的pandas库中的dropna()方法删除DataFrame中的缺失值,包括按行或列删除、删除整列、设定特定条件等,并提供了示例代码来演示各种情况的应用。

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

python删除替换dataframe中nan的方法——dropna()用法

DataFrame.dropna(axis=0,how=’any’,thresh=None,subset=None,inplace=False)
参数:
axis: 默认axis=0,0为按行删除,1为按列删除
how: 默认 ‘any’,‘any’指带缺失值的所有行/列,'all’指清除一整行/列都是缺失值的行/列
thresh: int,保留含有int个非nan值的行
subset: 删除特定列中包含缺失值的行或列
inplace: 默认False,即筛选后的数据存为副本,True表示直接在原数据上更改、

例子:
有基本dataframe

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(24).reshape(4,6), index=[‘a’, ‘c’, ‘e’, ‘f’])
df.iloc[0,[1,2,5]]=np.nan
df.iloc[2,[1,4]]=np.nan
print(df)

结果:
在这里插入图片描述
现在要删除所有包含NaN的行,相当于参数全部默认

df=df.dropna()
#df=df.dropna(axis=0,how=‘any’,thresh=None,subset=None,inplace=False)
print(df)

结果:
在这里插入图片描述
要删除所有包含NaN的列

df=df.dropna(axis=1)
print(df)

结果:
在这里插入图片描述
将第二列全部设置成nan,下面都是用的下图这个DataFrame了

df.iloc[:,1]=np.nan
print(df)

结果:
在这里插入图片描述
删除一整列都是NaN的列

df=df.dropna(axis=1,how=all)
print(df)

结果:
在这里插入图片描述
保留至少有3个非nan值的列

df=df.dropna(axis=1,thresh=3)
print(df)

结果:
在这里插入图片描述
删除列索引0,2中包含nan的行

df=df.dropna(subset=[0, 2]) 
print(df)

结果:
在这里插入图片描述

### Python Pandas 使用指南 #### 什么是 Pandas? Pandas 是一种强大的开源数据分析工具,专为 Python 设计。它提供了高效的数据结构和分析功能,广泛应用于数据清洗、转换、探索以及可视化等领域[^2]。 --- #### 如何安装 Pandas? ##### 方法一:使用 `pip` 安装 对于大多数用户来说,可以通过以下命令轻松安装 Pandas: ```bash pip install pandas ``` ##### 方法二:使用 Anaconda 安装 如果需要管理多个数据科学库及其依赖项,则推荐使用 Anaconda 发行版。Anaconda 自带 Pandas,无需额外操作。如果没有预装,可以运行以下命令更新或安装: ```bash conda install pandas ``` 完成后可通过以下代码验证是否成功安装并正常使用: ```python import pandas as pd print(pd.__version__) ``` 此代码会打印当前已安装的 Pandas 版本号。 --- #### 基础概念与核心组件 Pandas 提供了两个主要的数据结构——Series 和 DataFrame: 1. **Series** Series 是一个类似于数组的一维标签化数组对象,支持异构数据类型。 ```python import pandas as pd data_series = pd.Series([1, 3, 5, None]) print(data_series) ``` 2. **DataFrame** DataFrame 是二维表格型数据结构,具有行列索引,非常适合存储关系型数据集。 ```python import pandas as pd data_frame = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago'] }) print(data_frame) ``` --- #### 数据读取与写入 Pandas 支持多种文件格式的操作,常见的有 CSV 文件和 Excel 文件。 - **CSV 文件** ```python df_csv = pd.read_csv('file.csv') # 读取 CSV 文件 df_csv.to_csv('output.csv', index=False) # 将 DataFrame 导出到 CSV 文件 ``` - **Excel 文件** ```python df_excel = pd.read_excel('file.xlsx') # 读取 Excel 文件 df_excel.to_excel('output.xlsx', index=False) # 将 DataFrame 导出到 Excel 文件 ``` --- #### 时间序列处理 Pandas 对时间序列的支持非常强大,以下是创建日期范围的一个简单例子: ```python date_range = pd.date_range(start='2023-01-01', end='2023-01-10', freq='D') print(date_range) ``` 默认情况下,频率参数 (`freq`) 设置为 `'D'` 表示每天的时间间隔。可以根据需求调整为其他单位,比如小时 ('H') 或分钟 ('T')[^1]。 --- #### 数据筛选与过滤 假设有一个名为 `df` 的 DataFrame,下面是一些基本的筛选方法: ```python filtered_data = df[df['Age'] > 30] # 筛选出年龄大于 30 的记录 print(filtered_data) selected_columns = df[['Name', 'City']] # 只保留指定列 print(selected_columns) ``` --- #### 缺失值处理 缺失值是实际项目中经常遇到的问题,Pandas 提供了一些便捷的方法来检测和填充这些值: ```python missing_values_filled = df.fillna(0) # 用零替换所有 NaN 值 dropped_na_rows = df.dropna() # 删除含有任何 NA 值的行 print(missing_values_filled) print(dropped_na_rows) ``` --- #### 统计计算 利用内置函数可以直接获取各种统计指标: ```python summary_stats = df.describe() mean_age = df['Age'].mean() print(summary_stats) print(mean_age) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Steven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值