python – 使用条件在pandas数据帧中生成新列
作者:互联网
我有一个像这样的pandas数据框:
portion used
0 1 1.0
1 2 0.3
2 3 0.0
3 4 0.8
我想基于使用的列创建一个新列,以便df看起来像这样:
portion used alert
0 1 1.0 Full
1 2 0.3 Partial
2 3 0.0 Empty
3 4 0.8 Partial
>基于创建新的警报列
>如果使用的是1.0,则警报应为Full.
>如果使用的是0.0,则警报应为空.
>否则,警报应为部分.
最好的方法是什么?
解决方法:
您可以定义一个函数,它返回不同的状态“Full”,“Partial”,“Empty”等,然后使用df.apply将函数应用于每一行.请注意,您必须传递关键字参数axis = 1以确保它将函数应用于行.
import pandas as pd
def alert(c):
if c['used'] == 1.0:
return 'Full'
elif c['used'] == 0.0:
return 'Empty'
elif 0.0 < c['used'] < 1.0:
return 'Partial'
else:
return 'Undefined'
df = pd.DataFrame(data={'portion':[1, 2, 3, 4], 'used':[1.0, 0.3, 0.0, 0.8]})
df['alert'] = df.apply(alert, axis=1)
# portion used alert
# 0 1 1.0 Full
# 1 2 0.3 Partial
# 2 3 0.0 Empty
# 3 4 0.8 Partial
标签:calculated-columns,python,pandas,conditional 来源: https://codeday.me/bug/20190923/1813497.html