我有一个数据帧'df',列df['dead\u notdead'],它的值为[{'out'},{'out','stike'}…]我想创建一个名为df['Fatal']的列,如果df['dead\u notdead']的值为空,那么df['Fatal']应该是0或者1
文件格式 df尺寸16343
Input
index Dead_notdead
0 {'out'}
1 {}
2 {'out','shock,'kill'}
Output
index Dead_notdead Fatal
0 {'out'} 1
1 {} 0
2 {'out','shock','kill'} 1
试用代码:
k=df['Dead_notdead']
s=[]
for (i in range(len(k)):
if(len(k)==2):
s.append(0)
else:
s.append(1)
这是一个未知错误。总的来说,如果k的值为0,则新列应该为1
你可以把这个逻辑放在一个列表里。它创建了一个列表,可以像序列一样传递到新列中
df['Fatal'] = [1 if len(item) > 0 else 0 for item in df.Dead_notdead]
选项1
piRSquared's improvement涉及利用集合的虚假性
这是因为
{}
转换为False
选项2
您可以调用
str.len
,并使用astype
将结果布尔掩码转换为整数类型如果有一列字符串(不是
set
对象),请首先使用ast
转换它:相关问题 更多 >
编程相关推荐