在Pandas中基于另一列创建新列

3

我在Dataframe中有一列名为STATUS,其中包含“AMEND ORDER”或为空的值。 我需要根据该列创建一个FLAG,如果它的值包含AMEND单词,则设置FLAG 1,否则设置为0。 我尝试使用下面的代码,但它出现错误。

t[t['STATUS'].str.contains('AMEND')] 
2个回答

2

如果空值或None缺失值,可以通过使用按位OR运算符链接另一个掩码,并将其转换为整数以进行True -> 1, False - > 0映射:

t['FLAG'] = (t['STATUS'].str.contains('AMEND') | t['STATUS'].isna()).astype(int)

如果空值是空字符串,则使用 Series.eq 比较数值:
t['FLAG'] = (t['STATUS'].str.contains('AMEND') | t['STATUS'].eq('')).astype(int)

0

这可能是一种实现方式

mydat.loc[mydat['Status']=="",'flag']=0
mydat.loc[mydat['Status']=="AMEND ORDER",'flag']=1

状态标志

0 修改订单 1.0

1 修改订单 1.0

  1. "............." 0.0

3 修改订单 1.0

4 ".............." 0.0


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接