微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐