Pandas fillna()函数的使用

Pandas fillna()函数的使用

参考:pandas fillna()

在数据处理和分析中,经常会遇到缺失值的问题。pandas 提供了一个非常有用的函数 fillna() 来处理 DataFrame 中的缺失值。本文将详细介绍 fillna() 函数的使用方法,并通过多个示例代码展示如何在不同情况下使用该函数。

1. fillna() 函数概述

fillna() 函数用于填充 DataFrame 中的缺失值。该函数可以指定一个标量值来填充所有缺失值,或者可以指定一个字典/序列来对不同的列指定不同的填充值。此外,fillna() 还支持前向填充(用前一个非缺失值填充)和后向填充(用后一个非缺失值填充)。

函数的基本语法如下:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
  • value: 要填充的值,可以是标量,字典,序列,或 DataFrame。
  • method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None},填充方法。
  • axis: {0 or ‘index’, 1 or ‘pandasdataframe.com’},沿着哪个轴填充。
  • inplace: 如果为 True,则在原地修改 DataFrame,不创建新的 DataFrame。
  • limit: 如果指定了方法,则这是连续的 NA 值的前向/后向填充的最大数量。

2. 填充标量值

示例代码 1: 填充一个常数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3],
    'B': [4, 5, np.nan]
})
df.fillna(0)
print(df)

Output:

Pandas fillna()函数的使用

示例代码 2: 使用不同的常数填充不同的列

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 2, np.nan],
    'B': [np.nan, np.nan, 6]
})
df.fillna({'A': 1, 'B': 5})
print(df)

Output:

Pandas fillna()函数的使用

3. 使用方法参数

示例代码 3: 前向填充

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 2, np.nan],
    'B': [1, np.nan, 3]
})
df.fillna(method='ffill')
print(df)

示例代码 4: 后向填充

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3],
    'B': [4, np.nan, np.nan]
})
df.fillna(method='bfill')
print(df)

4. 结合 axis 使用

示例代码 5: 沿着列方向前向填充

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 2, np.nan],
    'B': [1, np.nan, 3],
    'C': [np.nan, np.nan, np.nan]
})
df.fillna(method='ffill', axis=0)
print(df)

示例代码 6: 沿着行方向后向填充

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3],
    'B': [4, np.nan, np.nan],
    'C': [7, 8, 9]
})
df.fillna(method='bfill', axis=1)
print(df)

5. 使用 limit 参数

示例代码 7: 限制前向填充的数量

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 2, np.nan, np.nan, 5],
    'B': [1, np.nan, 3, np.nan, np.nan]
})
df.fillna(method='ffill', limit=1)
print(df)

示例代码 8: 限制后向填充的数量

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3, np.nan, np.nan],
    'B': [4, np.nan, np.nan, 8, 9]
})
df.fillna(method='bfill', limit=1)
print(df)

6. 结合多个参数使用

示例代码 9: 结合 value 和 method 使用

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 2, np.nan],
    'B': [1, np.nan, 3]
})
df.fillna(value=0, method='ffill')
print(df)

示例代码 10: 结合 axis 和 limit 使用

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3, np.nan, 5],
    'B': [4, np.nan, 6, np.nan, 8]
})
df.fillna(method='ffill', axis=0, limit=1)
print(df)

7. 在实际数据集中应用 fillna()

示例代码 11: 处理实际数据集中的缺失值

import pandas as pd
import numpy as np

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, np.nan, 22, np.nan, 29],
    'Salary': [np.nan, 50000, np.nan, 45000, 52000]
}
df = pd.DataFrame(data)
df.fillna({'Age': df['Age'].mean(), 'Salary': df['Salary'].median()})
print(df)

Output:

Pandas fillna()函数的使用

示例代码 12: 使用不同方法填充不同列

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [np.nan, 2, np.nan],
    'B': [1, np.nan, 3],
    'C': [np.nan, np.nan, np.nan]
})
df.fillna({'A': df['A'].mean(), 'B': df['B'].median(), 'C': 0})
print(df)

Output:

Pandas fillna()函数的使用

8. 总结

在本文中,我们详细介绍了 pandas 的 fillna() 函数,展示了如何使用不同的参数来填充 DataFrame 中的缺失值。通过多个示例代码,我们演示了如何在不同情况下使用 fillna() 来处理数据。希望本文能帮助读者更好地理解和使用 pandas 处理缺失数据的功能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程