如何处理DataFrame中缺失项

本文介绍如何使用pandas库处理DataFrame中的NaN值。包括使用isnull()检查缺失值、notnull()进行相反操作以及dropna()删除包含NaN的行。提供实际代码示例,并附有详细解释。

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

查看所有单元格是否为NaN

DataFrame.isnull()

这个函数会返回一个和原来表格大小相同的表格,原表格值为NaN,此表中为True,否则为False

pandas.notnull()

结果恰好是上一个表格的取反

用DataFrame.dropna(axis=0how='any'thresh=Nonesubset=Noneinplace=False)具体参数见(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html)去除表格中的空白项NaN。

转载于:https://www.cnblogs.com/imageSet/p/7489291.html

### Pandas DataFrame 数据处理方法及示例 #### 1. 遍历DataFrame中的行 Pandas 提供了多种方式来遍历 `DataFrame` 的行数据。其中一种常见的方式是通过 `iterrows()` 方法实现逐行访问。此方法返回每一行的索引以及对应的行数据作为 Series 对象[^1]。 ```python import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]} df = pd.DataFrame(data) for index, row in df.iterrows(): print(f"Index: {index}, Name: {row['Name']}, Age: {row['Age']}") # 输出每行的信息 ``` --- #### 2. 删除含有缺失值的行或列 当 `DataFrame` 中存在缺失值时,可以使用 `dropna()` 函数删除这些行或列。默认情况下,该函数会移除任何包含缺失值的行;如果希望按列操作,则可以通过设置参数 `axis=1` 实现[^3]。 ```python import numpy as np data = {'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, np.nan]} df = pd.DataFrame(data) # 删除含缺失值的行 cleaned_df_rows = df.dropna() # 删除含缺失值的列 cleaned_df_columns = df.dropna(axis=1) print(cleaned_df_rows) # 显示清理后的行数据 print(cleaned_df_columns) # 显示清理后的列数据 ``` --- #### 3. 属性筛选 利用布尔条件表达式可以直接对 `DataFrame` 进行过滤和筛选。这种方式不仅高效而且易于理解[^4]。 假设有一个需求是要找出所有年龄大于等于30岁的记录: ```python filtered_df = df[df['Age'] >= 30] print(filtered_df) # 打印符合条件的结果集 ``` 上述代码片段展示了如何基于特定条件提取子集。 --- #### 4. 转换日期字段格式 对于涉及时间序列分析的任务来说,正确解析并标准化日期是非常重要的一步。通常我们会借助于 `pd.to_datetime()` 来完成这工作,并进一步调整其显示样式[^5]。 ```python date_data = {'Date': ['2023-01-01T12:00:00Z', '2023-02-01T15:30:00Z']} df_dates = pd.DataFrame(date_data) # 将字符串类型的日期转换成 datetime 类型 df_dates['Formatted_Date'] = pd.to_datetime(df_dates['Date']).dt.date print(df_dates[['Date', 'Formatted_Date']]) ``` 以上例子说明了怎样把原始 ISO 时间戳转化为仅保留年月日形式的新列。 --- #### 总结 通过对 Pandas 库的学习与应用,我们可以更加便捷地执行诸如遍历、清洗、查询以及预处理等工作流程上的各任务。掌握好这些基础技能有助于提升日常工作中针对大规模结构化资料管理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值