【问题标题】:How to use column values in Python user define function?如何在 Python 用户定义函数中使用列值?
【发布时间】:2019-12-09 06:29:00
【问题描述】:

我想检查用户定义函数中列的值,如果该列的值为 1,它将返回 1,如果值为 0,它将返回 0。然后,我想用这些创建一个新列价值观

def count_developer(x): 
    if ['datascientist'] == "1":
        return 1 
    else:
        return 0

dat2['count_developer'] = dat2.apply(count_developer,axis=1)

但是,我在新创建的列“count_developer”中只得到“0”作为值,尽管“datascientist”列同时具有 0 和 1 作为值

【问题讨论】:

  • 'datascientist' 是否只有0s 和1s?
  • ['datascientist'] 是一个包含字符串的列表。它永远不会等于字符串"1",这就是返回0 的原因。无法到达最后一行。参数x 从未使用过。你的意思是dat2['datascientist']dat2 是全局变量吗?
  • 是的,'datascientist' 字段只有 0 和 1
  • 是的,dat2 是一个全局变量

标签: python function if-statement


【解决方案1】:

尝试: 您正在返回 0 和 1。因此它不会执行下一行。

def count_developer(x): 
    if ['datascientist'] == "1":
        return_val = 1 
    else:
        return_val = 0
    dat2['count_developer'] = dat2.apply(count_developer,axis=1)
    return return_val

【讨论】:

  • 还是只返回0,新列count_developer只有0个值
【解决方案2】:

试试这个:

def count_developer(x): 
    if ['datascientist'] == 1 or ['datascientist'] == "1":
        return 1 
    else:
        return 0
dat2['count_developer'] = dat2.apply(count_developer,axis=1)

【讨论】:

  • 试过了,还是只返回0,新列count_developer只有0个值
猜你喜欢
  • 1970-01-01
  • 2018-03-17
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 2011-06-15
  • 1970-01-01
相关资源
最近更新 更多