全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

深入了解pandas删除空值行

发布时间:2023-11-24 11:05:43
发布人:xqq

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

pandas删除空值行

相关文章

linux文件所属分区,linux分区文件类型

linux文件所属分区,linux分区文件类型

2023-11-24
Access-Control详解

Access-Control详解

2023-11-24
Neo4j删除关系的多个方面详述

Neo4j删除关系的多个方面详述

2023-11-24
Matlab的mat文件保存方法

Matlab的mat文件保存方法

2023-11-24

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取