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

📅  最后修改于: 2022-05-13 01:54:37.639000             🧑  作者: Mango

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

让我们讨论将 If 条件应用于 pandas 中的数据框的不同方法。

1) 对数字应用 IF 条件
让我们创建一个包含 5 个数字(比如从 51 到 55)的 Pandas DataFrame。让我们为以下情况应用 IF 条件。如果特定数字等于或小于 53,则分配值“真”。否则,如果数字大于 53,则分配值“False”。

句法:

例子:

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”。

句法:

例子:

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)

输出: