编程语言
首页 > 编程语言> > python – 使用条件在pandas数据帧中生成新列

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