Панда способ сохранить часть int столбца чисел в кадре данных - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть столбец данных (df) с плавающей точкой:

0       59.9179
1       50.3874
2       50.3874
3       55.0089
4        58.423
5       58.8227
6       55.2471
7       57.2266
8       46.4312
9       59.9097
10      57.1417

Есть ли в пандах способ сохранить целую часть числа и отбросить десятичную, чтобы результирующий столбец выглядел так:

0       59
1       50
2       50
3       55
4       58
5       58
6       55
7       57
8       46
9       59
10      57

Я вижу способ сделать это для 1 числа

>>> s = 59.9179
>>> i, d = divmod(s, 1)
>>> i
59

но не для целого столбца за один раз

Большое спасибо

Ответы [ 5 ]

0 голосов
/ 30 апреля 2018

У вас есть два варианта:

  1. Приведение типа столбца (или даже целого кадра данных):

    df[column] = df[column].astype(int)
    
  2. Или с использованием метода numpy's floor (для положительных операций с плавающей точкой, как в вашем примере)

    df[column] = np.floor(df[column])
    
0 голосов
/ 30 апреля 2018

Чтобы сохранить целочисленную часть, используйте функцию trunc (), как показано ниже.

Самый простой метод заключается в использовании trunc () функции для столбца .

df[col_name] = trunc(df[col_name])
0 голосов
/ 30 апреля 2018

Если имя вашего столбца col, выполните следующие действия:

df[col]=df[col].astype('int')
0 голосов
/ 30 апреля 2018

Вы можете использовать это:

df[your_column] = df[your_column].astype(int)

Или для всего df:

df = df.astype(int)
0 голосов
/ 30 апреля 2018

Вы можете использовать метод apply, передав функцию лямбда .

df = df.apply(lambda row: int(row['second_column']), axis=1)

Другой метод заключается в использовании метода astype.

df[second_column] = df[second_column].astype(int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...