如何在Pandas中根据条件替换列中的值

如何在Pandas中根据条件替换列中的值

在这篇文章中,我们将讨论在pandas中用条件替换数据集的列中的值的各种方法。这可以通过很多方法完成,让我们来看看所有这些方法的细节。

方法1:使用dataframe.loc[]函数

通过这个方法,我们可以用一个条件或一个布尔数组来访问一组行或列。如果我们可以访问它,我们也可以操作它的值,是的!这是我们的第一个方法,通过pandas中的dataframe.loc[]函数,我们可以访问一个列并通过一个条件改变它的值。

现在,我们要把性别栏中的所有 “男性 “改为1。

语法: df.loc[ df["column_name"] == "some_value", "column_name" ] = "value"

some_value = 需要被替换的值

value = 应该被放置的值。

注意:你也可以使用其他运算符来构建条件,改变数值。

示例:

# Importing the libraries
import pandas as pd
import numpy as np
  
# data
Student = {
    'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
    'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
    'math score': [50, 100, 70, 80, 75, 40],
    'test preparation': ['none', 'completed', 'none', 'completed',
                         'completed', 'none'],
}
  
# creating a Dataframe object
df = pd.DataFrame(Student)
  
# Applying the condition
df.loc[df["gender"] == "male", "gender"] = 1
Python

输出:

如何在Pandas中根据条件替换列中的值?

方法2:使用NumPy.where()函数

我们将要看到的另一种方法是使用NumPy库。NumPy是一个非常流行的库,用于2D和3D数组的计算。它为我们提供了一个非常有用的方法where()来访问有条件的特定行或列。我们也可以用这个函数来改变某一列的特定值。

这个numpy.where()函数应该写上条件,如果条件为真,后面是值,如果条件为假,则是一个值。现在,我们要把性别栏中的所有 “女性 “改为0,”男性 “改为1。

语法: df[“column_name”] = np.where(df[“column_name”]==”some_value”, value_if_true, value_if_false)

示例:

# Importing the libraries
import pandas as pd
import numpy as np
  
# data
student = {
    'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
    'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
    'math score': [50, 100, 70, 80, 75, 40],
    'test preparation': ['none', 'completed', 'none', 'completed',
                         'completed', 'none'],
}
  
# creating a Dataframe object
df = pd.DataFrame(student)
  
  
# Applying the condition
df["gender"] = np.where(df["gender"] == "female", 0, 1)
Python

输出:

如何在Pandas中根据条件替换列中的值?

方法3:使用pandas掩码函数

Pandas的掩蔽函数是为了用一个条件替换任何行或列的值。现在我们使用这个屏蔽条件,将性别栏中所有的 “女性 “改为0。

语法: df[‘column_name’].mask( df[‘column_name’] == ‘some_value’, value , inplace=True )

示例:

# Importing the libraries
import pandas as pd
import numpy as np
  
# data
student = {
    'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
    'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
    'math score': [50, 100, 70, 80, 75, 40],
    'test preparation': ['none', 'completed', 'none', 'completed', 
                         'completed', 'none'],
}
  
# creating a Dataframe object
df = pd.DataFrame(student)
  
# Applying the condition
df['gender'].mask(df['gender'] == 'female', 0, inplace=True)
  
# Try this too
#df['math score'].mask(df['math score'] >=60 ,'good', inplace=True)
Python

输出:

如何在Pandas中根据条件替换列中的值?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册