Python Pandas中dropna()函数详解:如何删除包含空值的行或列
本文详细介绍Pandas中dropna()函数的用法,用于删除DataFrame中的缺失值。通过解析axis、how、thresh、subset及inplace等参数,演示按行或列删除包含空值的操作,包括设置子集判断区域和原地修改数据框的方法,帮助开发者高效处理数据清洗任务。
摘要与函数概述
摘要
dropna()方法用于识别DataFrame类型数据中的空值(即缺失值),并将包含这些空值的指定行或列删除,最终返回一个新的DataFrame对象。
函数详解
dropna函数参数详解
函数签名:dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数说明:
axis:指定操作的轴。值为0或'index'时,表示按行进行删除操作;值为1或'columns'时,表示按列进行删除操作。
how:指定筛选空值的条件。取值为'any'时,表示只要该行或列中存在任意一个空值,即执行删除;取值为'all'时,表示仅当该行或列的所有元素均为空值时,才执行删除。
thresh:非空元素数量的阈值。类型为int,默认为None。若指定该值,则当某行或列中非空元素的数量低于此阈值时,该行或列将被删除。
subset:指定参与判断的子集。类型为列表,包含行索引或列索引。当axis为0或'index'(按行删除)时,subset中的元素应为列索引,用于限定判断哪些列的空值触发删除;当axis为1或'columns'(按列删除)时,subset中的元素应为行索引,用于限定判断哪些行的空值触发删除。
inplace:是否原地修改。类型为布尔值,默认为False。若设为True,则直接在原DataFrame上进行修改,该方法返回None;若为False,则返回一个新的DataFrame,原数据不变。
示例演示
dropna使用示例
首先创建用于测试的DataFrame数据:
import numpy as np
import pandas as pd
a = np.ones((11,10))
for i in range(len(a)):
a[i,:i] = np.nan
d = pd.DataFrame(data=a)
print(d)

示例一:按行删除,只要存在空值即删除该行
# 按行删除:存在空值,即删除该行
print(d.dropna(axis=0, how='any'))

示例二:按行删除,仅当所有数据均为空值时才删除该行
# 按行删除:所有数据都为空值,即删除该行
print(d.dropna(axis=0, how='all'))

示例三:按列删除,若某列非空元素数量小于5,则删除该列
# 按列删除:该列非空元素小于5个的,即删除该列
print(d.dropna(axis='columns', thresh=5))

示例四:设置子集,仅当第0、5、6、7列同时为空时,才删除该行
# 设置子集:删除第0、5、6、7列都为空的行
print(d.dropna(axis='index', how='all', subset=[0,5,6,7]))

示例五:设置子集,仅当第5、6、7行中存在空值时,才删除对应的列
# 设置子集:删除第5、6、7行存在空值的列
print(d.dropna(axis=1, how='any', subset=[5,6,7]))

示例六:原地修改数据

# 原地修改
print(d.dropna(axis=0, how='any', inplace=True))
print("==============================")
print(d)
实际应用场景扩展
实例扩展:
代码实现
import pandas as pd
data = pd.read_excel('test.xlsx',sheet_name='Sheet1')
datanota = data[data['销售人员'].notna()]
print(datanota)
输出结果
D:\Python\Anaconda\python.exe D:/Python/test/EASdeal/test.py 城市 销售金额 销售人员 0 北京 10000 张丽丽 1 上海 50000 潇潇 2 深圳 60000 笨笨笨 3 成都 40000 达达
Process finished with exit code 0
本文介绍了Python中删除包含空值行的方法,更多相关Python删除空行技巧可参考本站历史文章或继续浏览后续内容,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













