Можно ли использовать функцию сдвига pandas и сохранить dtypes? - PullRequest
0 голосов
/ 28 апреля 2020

При использовании метода shift от Pandas он переназначает dtypes, отличные от исходного кадра данных, возможно ли смещение без этого? (но все еще с использованием pandas shift)

Использование аргумента fill_value почти достаточно, но если есть какой-либо тип dtype, который не является цифрой c, он все равно изменяет тип d.

import pandas as pd

data = [
  {'a': 1, 'b': 5.2, 'c': True},
  {'a': 5, 'b': 8.5, 'c': False},
  {'a': 2, 'b': 2.6, 'c': True}
]

df = pd.DataFrame(data)

print(df.dtypes)
print(df.shift(1).dtypes)
print(df.shift(1, fill_value=0).dtypes)

Вывод:

a      int64
b    float64
c       bool
dtype: object

a    float64
b    float64
c     object
dtype: object

a      int64
b    float64
c     object
dtype: object

1 Ответ

1 голос
/ 28 апреля 2020

вы можете использовать convert_dtypes как:

print (df.shift(1).convert_dtypes().dtypes)
a      Int64
b    float64
c    boolean
dtype: object

Это не совсем bool тип, но boolean, но это лучше, чем объект Я думаю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...