千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 深入了解pandas删除空值行

深入了解pandas删除空值行

来源:千锋教育
发布人:xqq
时间: 2023-11-24 11:05:43 1700795143

一、dataframe删除空值行

删除空值行是数据清洗中必不可少的一部分。在pandas中,可以使用dropna()函数来删除空值的行。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, 12]})
                   
df.dropna(inplace=True)  # inplace参数设为True,可以直接修改原数据
print(df)

上述代码中,我们首先创建一个包含空值的DataFrame,接着使用dropna()函数删除空值行,最后输出处理后的数据。

二、pandas删除空值的列

与删除空值行相对应的是删除空值列。在pandas中,可以使用dropna()函数的axis参数指定删除空值的列。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, 12]})
                   
df.dropna(axis=1, inplace=True)
print(df)

上述代码中,我们同样先创建一个包含空值的DataFrame。接着使用dropna()函数并指定axis参数为1,表示删除列,最后输出处理后的数据。

三、pandas删除空白行

除了空值行外,pandas还可以删除空白行。空白行可能包含有不可见的空白字符。在pandas中,可以使用dropna()函数的how参数设为'all'来删除所有空白行。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': ['  ', 2, np.nan, 4],
                   'B': ['  ', np.nan, '  ', 8],
                   'C': [9, 10, 11, 12]})
                   
df.replace(' ', np.nan, inplace=True)  # 将空白字符替换为NaN
df.dropna(how='all', inplace=True)  # 删除所有空白行
print(df)

上述代码中,我们首先在DataFrame中添加了一些包含空白字符的行。接着使用replace()函数将空白字符替换成NaN,然后使用dropna()函数并指定how参数为'all'来删除所有空白行,最后输出处理后的数据。

四、pandas去除空值行

除了删除空值行外,还有一种操作是去除空值行。去除空值行可以保留原数据,同时也可以减少数据量和提高数据质量。在pandas中,可以使用dropna()函数的thresh参数来指定每行至少含有多少个非空值才保留,从而达到去除空值行的目的。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, 12]})
                   
df.dropna(thresh=2, inplace=True)  # 至少含有两个非空值才保留
print(df)

上述代码中,我们使用dropna()函数的thresh参数设为2,表示每行至少含有两个非空值才保留,最后输出处理后的数据。

五、pandas删除空值的行

除了dropna()函数外,pandas中还有一种常用的方法是使用boolean indexing。boolean indexing通常用于根据某些条件过滤数据。在pandas中,可以使用isnull()函数和any()函数来实现。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, 12]})
                   
df = df[~df.isnull().any(axis=1)]  # 删除含有空值的行
print(df)

上述代码中,我们首先使用isnull()函数判断数据是否为空值,接着使用any()函数和axis参数设为1,表示只要行中有空值,就视为True。最后使用~运算符将True转为False,得到最终的boolean indexing,即删除含有空值的行。

六、pandas删除空列

除了删除空值行和空白行外,pandas还可以删除空列。在pandas中,可以使用dropna()函数的axis参数设为1来删除空列。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, np.nan]})
                   
df.dropna(axis=1, how='all', inplace=True)  # 删除所有空列
print(df)

上述代码中,我们使用dropna()函数的how参数设为'all'来删除所有空列,最后输出处理后的数据。

七、删除空值所在行pandas

与除了空白行和空列外的删除操作相对应的是只删除含有空值的行。在pandas中,可以使用dropna()函数的subset参数来指定哪些列需要判断是否含有空值。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, np.nan]})
                   
df.dropna(subset=['A', 'B'], how='any', inplace=True)  # 删除A和B列中含有空值的行
print(df)

上述代码中,我们使用dropna()函数的subset参数指定对'A'和'B'列进行操作,同时使用how参数设为'any'表示只要含有空值就进行删除。

八、pandas删除指定行

除了删除空值行外,pandas中还可以删除指定的行。在pandas中,可以使用drop()函数来实现。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, 3, 4],
                   'B': [5, 6, 7, 8],
                   'C': [9, 10, 11, 12]})

df.drop([1, 3], axis=0, inplace=True)  # 删除第1和第3行
print(df)

上述代码中,我们使用drop()函数的第一个参数指定要删除的行的索引,第二个参数指定删除行的维度,即axis参数设为0表示按行删除,最后使用inplace参数直接修改原数据。

九、pandas删除含有空值的行

除了删除特定的行外,pandas中还可以删除含有空值的行。在pandas中,可以使用boolean indexing。


import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, 8],
                   'C': [9, 10, 11, 12]})

df = df[df.notnull().all(axis=1)]  # 删除含有空值的行
print(df)

上述代码中,我们使用notnull()函数判断数据是否为空值,接着使用all()函数和axis参数设为1,表示整行都非空值才为True。最后使用boolean indexing删除含有空值的行。

结语

本文分别介绍了pandas删除空值行的几种方法,包括删除空值行、删除空值列、删除空白行、去除空值行、删除空列、删除指定行、删除含有空值的行等。同时也对每种方法进行了详细的讲解和代码示例。希望本文能够帮助大家更好地进行数据清洗和处理。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT