#python #dataframe
#python #фрейм данных
Вопрос:
У меня есть фрейм данных pandas со столбцом под названием ‘postalcode’, содержащим только 4 цифры (например, 1234).
Однако, когда я очищал с веб-сайта, столбец postalcode иногда содержит более 4 цифр, например 123456789.
Каков наилучший способ установить длину значения столбца, чтобы выбирать только первые 4 цифры для столбца ‘postalcode’?
City Postalcode
A 1234
B 234567890
C 5678
... ....
Желаемые результаты:
City Postalcode
A 1234
B 2345
C 5678
... ...
Комментарии:
1. Всегда ли вам нужны первые 4 значения?
2. Да, всегда 4 цифры для postalcode
3. @ElizabethShen это сделано
Ответ №1:
data = pd.DataFrame({"ali":[111111,4132123,342131,543545,76767]})
data["truncated"] = data.ali.apply(lambda x: int(str(x)[:4]))
data.head()
#output
ali truncated
0 111111 1111
1 4132123 4132
2 342131 3421
3 543545 5435
4 76767 7676
Комментарии:
1. Большое спасибо, кажется, что мы находимся в одном городе 🙂
2. @ElizabethShen примите ответ, чтобы удалить его из активных вопросов
3. Я уже принял первый ответ. В любом случае, спасибо!
Ответ №2:
Если вызывается ваш df
фрейм данных и столбец имеет тип String
, вы можете просто нарезать значения:
df['Postalcode'] = df['Postalcode'].str[:4]
Вы также можете использовать str.slice .
Комментарии:
1. Большое спасибо! Это действительно помогло.
Ответ №3:
На самом деле первый ответ сработал очень хорошо. Я не знаю, почему сейчас удален. Ответ прост, но полезен: df[‘Postalcode’]=df[‘Postalcode’].str[:4]
В любом случае спасибо.
Комментарии:
1. Может быть, я выполнил какую-то неправильную операцию? Я пытался нажать, чтобы принять его в первый раз, но не сработало. Затем я попытался щелкнуть треугольник вверх, он уже -1. Ответ снова там, поэтому я снова нажал Принять, это сработало! Когда я нажал на треугольник вверх, он возвращается к 0, если я нажму еще раз, он снова станет -1 :-)))((((
2. Да, кто-то еще проголосовал против меня, а не ты. Но все же спасибо, рад, что это помогло вам!