📜  带索引的 fillna - Python (1)

📅  最后修改于: 2023-12-03 15:25:30.743000             🧑  作者: Mango

带索引的 fillna - Python

在处理数据时,经常需要填充缺失的值。在 Pandas 中,fillna 是一个非常有用的函数,可以帮助我们快速地填充缺失的值。除此之外,我们还可以通过 fillna 函数中的 index 参数带有索引地对缺失值进行填充。

1. index 参数的语法

fillna 函数的 index 参数的语法如下:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

其中 index 参数具体语法如下:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs).fillna(value=None, method=None, axis=None, level=None, inplace=False, limit=None, downcast=None, **kwargs)

可以发现,在 fillna 函数中我们可以使用两次参数,第一次使用 index 参数,指定要填充的索引,第二次使用 level 参数,指定要填充的层级。

2. index 参数的用法

下面我们展示如何使用 index 参数和 level 参数来填充值。

import pandas as pd
import numpy as np

# 创建一个有缺失值的 DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5], 'B': [6, 7, 8, np.nan, 10], 'C': [11, 12, 13, 14, np.nan]})
print(df)

# 使用 index 参数给缺失值填充指定索引的值
df.fillna(value={'A': 0, 'C': 100}, inplace=True)
print(df)

# 使用 level 参数给缺失值填充指定层级的值
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5], 'B': [6, 7, 8, np.nan, 10], 'C': [11, 12, 13, 14, np.nan], 'D': [15, 16, np.nan, 18, 19]})
df.set_index(['A', 'B'], inplace=True)
print(df)
df.fillna(value={('C', ''): 100, ('D', 7): 200}, level=0, inplace=True)
print(df)

以上代码中,我们首先创建了一个 DataFrame,其中含有一些缺失值。接着使用 index 参数给缺失值填充指定索引的值。然后我们又构造了一个含有多层次索引的 DataFrame,对缺失值填充了指定层级的值。

3. 总结

fillna 函数是 Pandas 中非常实用的函数,可以帮助我们快速地填充缺失的值。通过使用 index 和 level 参数带有索引地进行填充,让我们可以更灵活地对缺失值进行处理。