【问题标题】:Replicate excel condition statement in python在python中复制excel条件语句
【发布时间】:2021-11-26 21:30:09
【问题描述】:

我正在尝试将 If 语句从 excel 转换为 python。

我知道对于excel,我们有If语句:

IF(logical_test, [value_if_true], [value_if_false])

对于 Python,我想复制下面的 excel if 语句。

AZ2 = IF(BA2<>"",IF(BB2<>"",BB2,"Blank"), IF(BO2<>"", BO2, "Blank"))

这里AZ2,BA2,BB2,BO2是excel文件中的列,在excel中代表不相等。

我尝试使用以下代码使用 np.where 但它不起作用?你知道我做错了什么吗?

 df['AZ']=np.where(df['BA'].notnull(),
 np.where(df['BB'].notnull(),df['BB'],'Blank',
 np.where(df['BO'].notnull(),df['BO'],'Blank')))

我在尝试执行时收到此错误。

Type Error: where() takes at most 3 arguments (4 given) 

有什么建议吗?

【问题讨论】:

    标签: pandas dataframe python-2.7 numpy


    【解决方案1】:

    问题来自于第一个 Blank 后面缺少的括号和语句末尾的多余括号。
    你可以试试这个:

     df['AZ']=np.where(df['BA'].notnull(),
                       np.where(df['BB'].notnull(), 
                                df['BB'],
                                'Blank'),
                       np.where(df['BO'].notnull(),
                                df['BO'],
                                'Blank'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 2020-01-15
      • 2023-02-07
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多