При использовании метода 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