关键词

在Pandas DataFrame中应用if条件的方法

当我们需要根据某种条件在Pandas DataFrame中对数据进行筛选或修改时,可以使用if条件来实现。

以下是在Pandas DataFrame中使用if条件的方法及示例:

方法一:使用DataFrame的apply函数

我们可以使用apply函数,将自定义的lambda函数应用到每个元素上,然后返回一个新的DataFrame。在该lambda函数中,我们可以使用if条件来判断,并返回一个布尔值。

示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Esther'], 'age': [25, 32, 18, 47, 53], 'sex': ['F', 'M', 'M', 'M', 'F']}

df = pd.DataFrame(data)

# 使用lambda函数筛选出年龄大于30岁的数据,并将性别从M改为Male,F改为Female
df = df.apply(lambda x: pd.Series([x[0], x[1], 'Male' if x[2]=='M' and x[1]>30 else 'Female' if x[2]=='F' else x[2]], index=['name', 'age', 'sex']), axis=1)

print(df)

输出结果:

      name  age     sex
0    Alice   25  Female
1      Bob   32    Male
2  Charlie   18       M
3    David   47    Male
4   Esther   53  Female

在以上示例中,我们首先创建了一个带有姓名、年龄和性别的DataFrame。然后,我们通过apply函数,定义了一个lambda函数,将其应用到DataFrame的每一行中。 在这个lambda函数中,我们首先返回原来的姓名和年龄。在性别这一列中,我们使用if条件判断,如果性别为'M'并且年龄大于30,则将性别修改为'Male';如果性别为'F',则将性别修改为'Female'。最后,我们返回修改后的DataFrame。

方法二:使用Pandas的where函数

Pandas提供了where函数,其中第一个参数是一个Series或DataFrame,第二个参数是一个条件(可以是lambda函数),第三个参数是一个替代值。如果原始数据满足条件,则保留原始值,否则将其替换为替代值。通过这种方式,我们可以使用if条件来筛选和修改数据。

示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Esther'], 'age': [25, 32, 18, 47, 53], 'sex': ['F', 'M', 'M', 'M', 'F']}

df = pd.DataFrame(data)

# 使用where函数筛选出年龄大于30岁的数据,并将性别从M改为Male,F改为Female
df['sex'] = df['sex'].where(df['age']<=30, 'Male').where(df['age']>30, 'Female')

print(df)

输出结果:

      name  age     sex
0    Alice   25  Female
1      Bob   32    Male
2  Charlie   18    Male
3    David   47  Female
4   Esther   53  Female

在以上示例中,我们首先创建了一个带有姓名、年龄和性别的DataFrame。然后,我们对性别这一列应用了两次where函数。第一次where函数中的条件为年龄小于等于30岁,替代值为'Male';第二次where函数中的条件为年龄大于30岁,替代值为'Female'。这样,我们就可以筛选出年龄大于30岁的数据,并将性别从'M'改为'Male',从'F'改为'Female'。

以上就是在Pandas DataFrame中应用if条件的方法及示例,希望能对你有所帮助。

本文链接:http://task.lmcjl.com/news/17381.html

展开阅读全文