使用 pandas 数据框根据过滤条件删除其中一列的方括号

Remove Square brackets for one of the column based on filter condition using pandas dataframe

我有包含两列文本列和服务器列的数据框,在文本列中,我必须根据服务器列条件删除方括号,即[其中服务器列 == DEV]。

                                     Input Dataframe
        Text Column                                   Server Column
 ['java error:404 URL not found']                        DEV
 ['java error:500 internal server']                      DEV
 HTTP status 204 (No Content)                            PROD
 HTTP status 200 created successfully                    PROD



                                   Output Dataframe
  Text Column                                         Server Column
 'java error:404 URL not found'                          DEV
 'java error:500 internal server'                        DEV
 HTTP status 204 (No Content)                            PROD
 HTTP status 200 created successfully                    PROD


####################################################
I tried with below code but not working 
data =data[data['server']== 'DEV'] 
data =data["nodes"].apply(lambda x: ",".join(x) if isinstance(x, list) else x) print(data)
But above code snippet is not working

如果您的列包含真实列表,您可以使用:

df['Text Column'] = df['Text Column'].mask(df['Text Column'].str.len() > 1) \
                                     .str[0].fillna(df['Text Column'])
print(df)

# Output
                            Text Column Server Column
0          java error:404 URL not found           DEV
1        java error:500 internal server           DEV
2          HTTP status 204 (No Content)          PROD
3  HTTP status 200 created successfully          PROD

假设 df 是您的 DataFrame,此任务可以按如下方式完成。

dev_text = df[df['Server Column'] == 'DEV']['Text Column']
dev_text = dev_text.str.replace('[', repl = '', regex = False).str.replace(']', repl  = '', regex = False)
df.loc[df['Server Column'] == 'DEV', 'Text Column'] = dev_text.values