在Pandas DataFrame中应用if条件的方法
让我们来讨论一下在pandas中对数据帧应用If条件的不同方式。
1)对数字应用IF条件
让我们创建一个有5个数字(比如从51到55)的Pandas数据框架。让我们对以下情况应用IF条件。如果特定的数字等于或低于53,则赋值为’真’。否则,如果该数字大于53,则赋值为 “假”。
语法:
df.loc[df[‘column name’] condition, ‘new column name’] = ‘value if condition is met’
示例:
from pandas import DataFrame
numbers = {'mynumbers': [51, 52, 53, 54, 55]}
df = DataFrame(numbers, columns =['mynumbers'])
df.loc[df['mynumbers'] <= 53, '<= 53'] = 'True'
df.loc[df['mynumbers'] > 53, '<= 53'] = 'False'
df
输出:
2)应用带有lambda的IF条件
让我们创建一个有5个数字(比如从51到55)的Pandas数据框架。让我们对以下情况应用IF条件。如果特定的数字等于或低于53,则赋值为’真’。否则,如果该数字大于53,则赋值为 “假”。
语法:
df[‘new column name’] = df[‘column name’].apply(lambda x: ‘value if condition is met’ if x condition else ‘value if condition is not met’)
示例:
from pandas import DataFrame
numbers = {'mynumbers': [51, 52, 53, 54, 55]}
df = DataFrame(numbers, columns =['mynumbers'])
df['<= 53'] = df['mynumbers'].apply(lambda x: 'True' if x <= 53 else 'False')
print (df)
输出:
3)对字符串应用IF条件
我们将处理一个只包含5个名字的字符串的DataFrame。Hanah, Ria, Jay, Bholu, Sachin。条件是。如果名字等于’Ria’,则赋值为’Found’。否则,如果名字不是 “Ria”,则赋值为 “未找到”。
示例:
from pandas import DataFrame
names = {'First_name': ['Hanah', 'Ria', 'Jay', 'Bholu', 'Sachin']}
df = DataFrame(names, columns =['First_name'])
df.loc[df['First_name'] == 'Ria', 'Status'] = 'Found'
df.loc[df['First_name'] != 'Ria', 'Status'] = 'Not Found'
print (df)
输出:
4)使用lambda在字符串上应用IF条件。
我们将处理一个只包含5个名字的字符串的DataFrame。Hanah, Ria, Jay, Bholu, Sachin。条件是。如果名字等于’Ria’,则赋值为’Found’。否则,如果名字不是 “Ria”,则赋值为 “未找到”。但这次我们将使用lambdas来处理它。
示例
from pandas import DataFrame
names = {'First_name': ['Hanah', 'Ria', 'Jay', 'Bholu', 'Sachin']}
df = DataFrame(names, columns =['First_name'])
df['Status'] = df['First_name'].apply(lambda x: 'Found' if x == 'Ria' else 'Not Found')
print (df)
输出:
5)应用带有OR的IF条件
我们将处理一个只包含5个名字的字符串的DataFrame。Hanah, Ria, Jay, Bholu, Sachin。条件是。如果名字等于 “Ria “或 “Jay”,则赋值为’Found’。否则,如果名字不是 “Ria “或 “Jay”,则赋值为 “未找到”。
示例
from pandas import DataFrame
names = {'First_name': ['Hanah', 'Ria', 'Jay', 'Bholu', 'Sachin']}
df = DataFrame(names, columns =['First_name'])
df.loc[(df['First_name'] == 'Ria') | (df['First_name'] == 'Jay'), 'Status'] = 'Found'
df.loc[(df['First_name'] != 'Ria') & (df['First_name'] != 'Jay'), 'Status'] = 'Not Found'
print (df)
输出: