我有包含兩列文本列和服務器列的資料框,在文本列中,我必須根據服務器列條件洗掉方括號,即[其中服務器列 == 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
uj5u.com熱心網友回復:
假設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
uj5u.com熱心網友回復:
如果您的列包含真實串列,您可以使用:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/448643.html
