是否可以使用pandas移位功能并保留数据类型



当使用方法shift from Pandas时,它会重新分配与原始数据帧不同的数据类型,是否可以在不发生这种情况的情况下进行转换?(但仍在使用熊猫移位(

使用fill_value参数就足够了,但如果有任何数据类型不是数字,它仍然会更改数据类型。

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

您可以像一样使用convert_dtypes

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

它不完全是bool类型,而是boolean类型,但我想它比对象更好

最新更新