У меня есть кадр данных pandas:
street_name eircode
Malborough Road BLT12
123 Fake Road NaN
My Street NaN
Я хотел бы создать еще один столбец с именем уникальный на основе следующих условий:
- Если он имеетeircode, верните 'yes' в уникальном столбце, THEN
- Если у него нет eircode, проверьте первую строку в street_name :
- если первая строка является цифрой, вернуть «да» в столбце уникальный
- , если это не так, вернуть «нет» в столбце уникальный
Я пришел к этому решению, где:
- Я изменил типы данных на строку для обоих столбцов street_name и eircode
- Получить первую строку с помощью лямбда-функции
- Определена функция тегирования, которая будет применена к фрейму данных
# change data types<br>
df['eircode'] = df['eircode'].astype('str')
df['street_name'] = df['street_name'].astype('str')
# get the first string from street_name column
df['first_str'] = df['street_name'].apply(lambda x: x.split()[0])
def tagging(x):
if x['eircode'] != 'nan':
return 'yes'
elif x['first_str'].isdigit() == True:
return 'yes'
else:
return 'no'
df['unique'] = df.apply(tagging, axis=1)
Проблема заключается в том, что мне нужно изменить тип данных, а затем создать отдельный столбец.Есть ли более изящный или более лаконичный способ достижения того же результата?