У меня есть следующий фрейм данных:
import pandas as pd
df = pd.DataFrame ({
'Name':['Unable host=test1, status=c0000192','Unable host=test2, status=22228001','Unable host=test3, status=c000018d'],
'Error':['NaN','NaN','NaN']
})
print(df)
Name Error
0 Unable host=test1, status=c0000192 NaN
1 Unable host=test2, status=22228001 NaN
2 Unable host=test3, status=c000018d NaN
Код должен следовать приведенным ниже инструкциям:
import pandas as pd
df = pd.DataFrame ({
'Name':['Unable host=test1, status=c0000192','Unable host=test2, status=22228001','Unable host=test3, status=c000018d'],
'Error':['NaN','NaN','NaN']
})
if df['Name'].str.contains('status=c000018d').any():
df['Error'] = 'Trust Failure'
elif df['Name'].str.contains('status=22228001').any():
df['Error'] = 'No creds'
else:
df['Error'] = 'Other'
print(df)
Выходные данные должны быть:
Name Error
0 Unable host=test1, status=c0000192 Other
1 Unable host=test2, status=22228001 No creds
2 Unable host=test3, status=c000018d Trust Failure
Вместо этого я получаю:
Name Error
0 Unable host=test1, status=c0000192 Trust Failure
1 Unable host=test2, status=22228001 Trust Failure
2 Unable host=test3, status=c000018d Trust Failure
Почему это происходит? Это как первый оператор if, который соответствует всему.