我正在创建一个名为lead_actor_actress_known的新列,其值是布尔值,这取决于第二列中的值是否有值。如果有值(参与者名称(,则使用True填充第一列如果没有值,则返回False
属性错误:"str"对象没有属性"isnull"我的代码在上面抛出了一个错误。
df['lead_actor_actress_known'] = df['lead_actor_actress'].apply(lambda x: True if x.isnull() else False)
我错过了什么?
当x是数据帧时,可以使用x.isull((。但是你使用了str,所以你可以使用pd。isnull(x(
你能试试这个代码吗:
df['lead_actor_actress_known'] = df['lead_actor_actress'].apply(lambda x: 1 if pd.isnull(x) == True else 0)
您可以简单地使用numpy的where:
import numpy as np
import pandas as pd
df['lead_actor_actress_known'] = np.where(pd.isna(df['lead_actor_actress']), False, True)
我把"False"放在第一位,因为当没有值时,你想要一个布尔值=False。
Henry Ecker的评论包含了这个问题的答案,为了方便起见,我在答案部分复制。将.apply()
方法的应用程序替换为代码df['lead_actor_actress_known'] = df['lead_actor_actress'].isna()
。
这里要知道的是,CCD_;布尔掩码";(一系列True和False值(,这正是您要求分配变量lead_actor_actress
的内容。