在 Pandas DataFrame 中应用 if 条件的方法
让我们讨论将 If 条件应用于 pandas 中的数据框的不同方法。
1) 对数字应用 IF 条件
让我们创建一个包含 5 个数字(比如从 51 到 55)的 Pandas DataFrame。让我们为以下情况应用 IF 条件。如果特定数字等于或小于 53,则分配值“真”。否则,如果数字大于 53,则分配值“False”。
句法:
df.loc[df[‘column name’] condition, ‘new column name’] = ‘value if condition is met’
例子:
Python3
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
Python3
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)
Python3
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)
Python3
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)
Python3
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)
输出:
2) 使用 lambda 应用 IF 条件
让我们创建一个包含 5 个数字(比如从 51 到 55)的 Pandas DataFrame。让我们为以下情况应用 IF 条件。如果特定数字等于或小于 53,则分配值“真”。否则,如果数字大于 53,则分配值“False”。
句法:
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’)
例子:
Python3
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”,则分配“未找到”的值。
例子:
Python3
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 来处理它。
例子
Python3
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”,则分配“未找到”的值。
例子
Python3
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)
输出: