Pandas 就地填充多列数据

Pandas 就地填充多列数据

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()方法的参数填充已识别的缺失值。如果传递了一个整数值,将用它来替换所有缺失值。如果传递了一个方法,将用它来填充缺失值。同时填充指定轴上的值和指定的downcast。

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

import pandas as pd

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

#Or read a dataset from a csv or any other file
df1=pd.read_csv("sample_data.csv")

# Fill NaN values in C1 and C2 with 0, and in C3 with 1
df.fillna(value={'C1': 0, 'C2': 0, 'C3': 1}, inplace=True)

#Filling NaN values in df1 with a random integer
df1.fillna(111)

# Print the updated DataFrame to see the difference
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

# Create a sample DataFrame with missing values
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)

#Original DataFrame with missing values
print(data)

# Fill missing values with mean values
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()方法是处理数据中缺失值的更好选择。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程