Pandas 使用ELIF语句创建列
在本文中,我们将介绍如何使用Pandas中的ELIF语句创建新的列。ELIF语句是Python中的条件语句,用于在多种情况下执行不同的操作。
假设我们有一个名为“data”的数据框,其中包含名为“score”的列,表示某个学生的分数。我们想要创建一个新的列“grade”,根据分数将学生分为“A”、“B”、“C”或“D”。
阅读更多:Pandas 教程
使用IF语句创建列
首先,我们可以使用IF语句创建列,根据分数将学生分为四个等级。下面是一个示例代码:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'score': [65, 70, 80, 90]}
df = pd.DataFrame(data)
def get_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
else:
return 'D'
df['grade'] = df['score'].apply(get_grade)
print(df)
输出结果如下:
name score grade
0 Tom 65 D
1 Jack 70 C
2 Steve 80 B
3 Ricky 90 A
使用ELIF语句创建列
我们可以使用ELIF语句代替IF语句,实现同样的目标。下面是代码示例:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'score': [65, 70, 80, 90]}
df = pd.DataFrame(data)
def get_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
elif score >= 60:
return 'D'
else:
return 'F'
df['grade'] = df['score'].apply(get_grade)
print(df)
输出结果如下:
name score grade
0 Tom 65 D
1 Jack 70 C
2 Steve 80 B
3 Ricky 90 A
简化代码
我们可以使用lambda函数和numpy库来简化代码:
import pandas as pd
import numpy as np
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'score': [65, 70, 80, 90]}
df = pd.DataFrame(data)
def get_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
else:
return 'D'
df['grade'] = np.vectorize(get_grade)(df['score'])
print(df)
输出结果如下:
name score grade
0 Tom 65 D
1 Jack 70 C
2 Steve 80 B
3 Ricky 90 A
总结
在本文中,我们介绍了如何使用Pandas中的ELIF语句创建新的列。ELIF语句是Python中的条件语句,用于在多种情况下执行不同的操作。通过使用ELIF语句和lambda函数,我们可以轻松地将数据框中的分数转换为等级,这是分析和可视化数据的重要步骤之一。
极客教程