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:
示例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:
示例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:
示例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:
示例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:
示例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:
示例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:
示例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:
示例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:
示例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:
以上示例展示了dropna()
函数在不同参数设置下的使用方法。通过调整axis
、how
、thresh
、subset
和inplace
参数,我们可以灵活地处理数据中的缺失值,以满足不同的数据分析需求。