Установите значение столбца на фиксированную длину

#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. Да, кто-то еще проголосовал против меня, а не ты. Но все же спасибо, рад, что это помогло вам!