📅  最后修改于: 2023-12-03 15:25:30.743000             🧑  作者: Mango
在处理数据时,经常需要填充缺失的值。在 Pandas 中,fillna 是一个非常有用的函数,可以帮助我们快速地填充缺失的值。除此之外,我们还可以通过 fillna 函数中的 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 参数,指定要填充的层级。
下面我们展示如何使用 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,对缺失值填充了指定层级的值。
fillna 函数是 Pandas 中非常实用的函数,可以帮助我们快速地填充缺失的值。通过使用 index 和 level 参数带有索引地进行填充,让我们可以更灵活地对缺失值进行处理。