当我们需要根据某种条件在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条件的方法及示例,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Pandas DataFrame中应用if条件的方法 - Python技术站