我的数据框(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)
答案 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"]