我已经创建了一个熊猫数据框,我想应用几个函数,以基于数据框中列的值创建两个新列。假设原始数据帧是这样的:
name sum
0 attr_1 900
1 attr_2 20000
2 attr_3 60000
我想创建一个基于sum列创建两个新列的函数,
name sum score rank
0 attr_1 900 0 low
1 attr_2 20000 3 med
2 attr_3 60000 7 high
现在,我有一个简单的if语句,它逐行并分配score
列,然后为score
列创建相同的逻辑以创建rank
列:
def score(row):
val = None
if row['count_sum'] < 1000:
val = 0
elif 1000 < row['count_sum'] < 30000:
val = 3
elif 30000 < row['count_sum'] < 70000:
val = 7
else:
val = 10
df['score']=df.apply(score, axis=1)
这只是逻辑的一小段,但是数据框可能会变大,如果语句重复两次,则代价很高。我想知道是否可以使用索引或列表一次性动态分配这些值。
我们非常感谢您的帮助!