功能无法正确识别条件

时间:2019-07-03 16:28:31

标签: python dataframe

我的数据框(dfd)有一列('Verleihgruppe'),在其中可以找到许多已租借的文章。对于使用NaN的所有记录,都购买了产品。因此,我尝试为该字段创建一个列('Geschäftsvorgang1'),以为所有具有值的记录分配术语“出租”,而应为所有NaN分配“购买”。

问题是新创建的列仅包含字符串“ Rental”。显然,它无法识别NaN以便为这些记录分配正确的字符串“购买”。

如果您能提供帮助,那就太好了!

谢谢!

def product_type(x):
    if x['Verleihgruppe'] == 'NaN':
      return 'Purchase'
    else:
      return 'Rental'
dfd['Geschäftsvorgang1'] = dfd.apply(product_type, axis=1)

1 个答案:

答案 0 :(得分:1)

在DataFrame中让NaN值永远都不是一件好事,因此您应该使用fillna()函数将NaN值替换为0,并确保Verleihgruppe中包含数字数据列:

import pandas as pd
dfd.fillna(value=0, inplace=True)    
dfd['Geschäftsvorgang1'] = ["Purchase" for r in dfd['Verleihgruppe'] if r == 0 else "Rental"]