pandas dropna 详细介绍

pandas dropna 详细介绍

参考:pandas dropna

在数据分析过程中,经常会遇到数据集中存在缺失值的情况。处理这些缺失值是数据预处理的重要步骤之一。pandas库提供了一个非常有用的函数dropna(),它可以帮助我们方便地删除数据中的缺失值。本文将详细介绍dropna()函数的使用方法,并通过10-20个示例代码,展示如何在不同场景下应用这个函数。

dropna()函数基础

dropna()函数的基本作用是删除DataFrame中包含缺失值的行或列。它的基本语法如下:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
  • axis:决定是删除包含缺失值的行还是列。axis=0表示删除行,axis=1表示删除列。
  • how:决定在什么情况下删除行或列。how='any'表示只要有缺失值就删除,how='all'表示当所有值都是缺失值时才删除。
  • thresh:设置一个阈值,只有非缺失值的数量少于这个阈值时,才进行删除。
  • subset:在哪些列中查找缺失值。只有这些指定的列中包含缺失值时,才进行删除操作。
  • inplace:是否在原地修改数据。如果为True,则原地修改,不返回新的对象;如果为False,则返回一个新的DataFrame对象,原数据不变。

示例代码

以下是使用dropna()函数的一些示例代码,每个示例都是独立的,可以直接运行。

示例1:删除任何包含缺失值的行

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna()
print(result)

Output:

pandas dropna 详细介绍

示例2:删除所有值都是缺失值的行

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [np.nan, np.nan, 3],
    "B": [np.nan, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna(how='all')
print(result)

Output:

pandas dropna 详细介绍

示例3:删除包含缺失值的列

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna(axis=1)
print(result)

Output:

pandas dropna 详细介绍

示例4:设置阈值删除行

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3, 4],
    "B": [4, 5, np.nan, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9, 10]
})
result = df.dropna(thresh=2)
print(result)

Output:

pandas dropna 详细介绍

示例5:指定列查找缺失值

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna(subset=['A', 'B'])
print(result)

Output:

pandas dropna 详细介绍

示例6:原地修改数据

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
df.dropna(inplace=True)
print(df)

Output:

pandas dropna 详细介绍

示例7:删除任何包含缺失值的列,使用axis=1

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna(axis=1)
print(result)

Output:

pandas dropna 详细介绍

示例8:结合how='all'axis=1删除列

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [np.nan, np.nan, np.nan],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna(axis=1, how='all')
print(result)

Output:

pandas dropna 详细介绍

示例9:使用thresh参数和axis=1结合删除列

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3, 4],
    "B": [4, 5, np.nan, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9, 10]
})
result = df.dropna(axis=1, thresh=3)
print(result)

Output:

pandas dropna 详细介绍

示例10:指定多列查找缺失值并删除行

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, np.nan, 3],
    "B": [4, 5, np.nan],
    "C": [np.nan, "pandasdataframe.com", 9]
})
result = df.dropna(subset=['A', 'C'])
print(result)

Output:

pandas dropna 详细介绍

以上示例展示了dropna()函数在不同参数设置下的使用方法。通过调整axishowthreshsubsetinplace参数,我们可以灵活地处理数据中的缺失值,以满足不同的数据分析需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程