1

我正在尝试根据其他列值更改一列值。你能帮我怎么做吗?

例子:

priority     comb_fld_order       start_bracs     end_bracs
1                                   (
1.1           
2.3           1                     (
2.3.1         1                                      )
3.7                                                  )

预期输出:

priority     comb_fld_order       start_bracs     end_bracs
1                                   
1.1           
2.3           1                     (
2.3.1         1                                      )
3.7    

意味着如果 comb_fld_order 为空,那么我们应该从 start_bracs 和 end_bracs 列中删除括号。

4

2 回答 2

0

您可以使用熊猫应用方法。

def removeBracks(record):
    if record['comb_fld_order'] is None:
       record['start_bracs'] = None
       record['end_bracs'] = None
    return record

df = df.apply(removeBracks, axis=1)
于 2020-06-01T11:48:45.930 回答
0

您可以使用 创建布尔掩码Series.eq,然后 Series.where根据条件使用替换值:

m = df['comb_fld_order'].eq('')
df['start_bracs'] = df['start_bracs'].where(~m, '')
df['end_bracs'] = df['end_bracs'].where(~m, '')

结果:

# print(df)

  priority comb_fld_order start_bracs end_bracs
0        1                                     
1      1.1                                     
2      2.3              1           (          
3    2.3.1              1                     )
4      3.7                                     
于 2020-06-01T11:56:01.580 回答