Почему результат после .split() сдвинут на одну позицию?
У меня есть датафрейм с колонкой df['address'] в которой содержится адрес примерно вот такого формата: 12951 Williams Crossing\nJohnnyville, DC 30723
Мне нужно создать отдельную колонку df['zip_code'] в которой будет содержаться только индекс (последние 5 цифр адреса - в случае примера выше - 30723).
# Making a list
list1 = []
for i in df['address']:
a = str(i).split()[-1]
list1.append(a)
# Making a dataframe out of list1:
zuk = pd.DataFrame({'zip_code':list1})
# Concatenating a new dataframe with the old one
df = pd.concat([df,zuk], axis=1, sort=True)
В результате, len(df) получается 396030 rows вместо 396029 исходных.
Откуда берется дополнительный ряд? При беглом анализе df, колонки 'address' и 'zip_code' соответсвуют друг другу.
Ответы (1 шт):
Зачем вы используете pandas, если полностью игнорируете ее векторизованные функции? какой смысл тогда?
Вместо всего вашего кода в вопросе, попробуйте выделить зип-код в отдельную колонку так:
df["zip"] = df["address"].str.split().str[-1]