在 Python Pandas 中将多个列填充为 Fillna

pythonpandasserver side programmingprogramming

Python 有一个开源内置库,名为 Pandas,用于数据分析和操作。它有一个定义明确的数据结构,称为 DataFrame,类似于表格。它还可用于从各种类型的文件(如 CSV、Excel、SQL 数据库等)写入和读取数据。

fillna() 是一种用于填充 Pandas DataFrame 或 Series 中缺失(NaN/Null)值的方法。缺失值将使用确定的值或另一个指定的方法以及方法调用进行填充。

语法

object_name.fillna(value, method, limit, axis, inplace, downcast)

fillna() 方法返回相同的输入 DataFrame 或 Series,其中填充了缺失值。

示例 1

我们使用 fillna() 填充 pandas DataFrame 和 CSV 文件中的缺失值。具有相同参数的 fillna() 方法可用于这两个对象。

注意 −

此处附上了从 csv 文件导入的数据,供您参考。 sampel_data.csv

算法

  • 步骤 1 − 识别指定 DataFrame 或 Series 中的缺失值 (NaN/Null)。

  • 步骤 2 − 根据传递给 fillna() 方法的参数填写已识别的缺失值。如果传递的是整数值,它将用于替换所有缺失值。如果传递了方法,它将用于填充缺失值。另外,填写轴上的值并向下转换。

  • 步骤 3 - 返回一个填充了缺失值的新 DataFrame 或 Series。

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({'C1': [5, 23, 33, np.NaN], 'C2': [26, np.NaN, 7, 18], 'C3': [11, 30, np.NaN,112]})
print(df)

# 或者从 csv 或任何其他文件读取数据集
df1=pd.read_csv("sample_data.csv")

# 将 C1 和 C2 中的 NaN 值填充为 0,将 C3 中的 NaN 值填充为1
df.fillna(value={'C1': 0, 'C2': 0, 'C3': 1}, inplace=True)

#用随机整数填充 df1 中的 NaN 值
df1.fillna(111)

#打印更新后的 DataFrame 以查看差异
print(df)

输出

#Before filling missing values
 	C1    C2 	C3
0       5.0   NaN   11.0
1      23.0  89.0   30.0
2      33.0   7.0.   NaN
3       NaN  18.0  112.0
 
#After filling missing values
 	 C1    C2    C3
0        5.0   0.0   11.0
1       23.0  89.0   30.0
2       33.0   7.0    1.0
3        0.0  18.0  112.0

示例 2

我们将使用包含学校学生信息的数据集,并使用 fillna() 方法用列值的平均值填充缺失值。我们随机选取数据集,而不是像示例 1 中那样从 CSV 文件导入。

import numpy as np
import pandas as pd

# 创建带有缺失值的示例 DataFrame
data = {
   'RollNo': [1, 2, 3, 4, 5],
   'Age': [10, np.NaN, 5, 8, 12],
   'Marks': [100, 200,np.NaN, 150,np.NaN]
}

data= pd.DataFrame(data)

# 带有缺失值的原始 DataFrame
print(data)

# 用平均值填充缺失值
data1 = data.fillna(data.mean())
print(data1)

输出

RollNo   Age  Marks
0       1  10.0  100.0
1       2   NaN  200.0
2       3   5.0    NaN
3       4   8.0  150.0
4       5  12.0    NaN
RollNo    Age  Marks
0       1  10.00  100.0
1       2   8.75  200.0
2       3   5.00  150.0
3       4   8.00  150.0
4       5  12.00  150.0

结论

您可以使用 Pandas 中的 fillna() 方法填充 DataFrame 中单列或多列的缺失值,也可以使用它来填充一系列的缺失值。您可以使用各种参数指定用于填充的值以及如何填充值。

Pandas 还有其他方法,例如 replace(),它用平均值、中位数、众数或任何此类值替换缺失值。两者之间的区别在于 fillna() 专门用于处理缺失值,而 replace 更通用,可用于填充对象中的任何值。因此,fillna() 方法是处理数据中缺失值的更好选择。


相关文章