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

Python 是否可以使用移位功能并保留数据类型?,python,pandas,dataframe,Python,Pandas,Dataframe,当使用方法shift from Pandas时,它会重新分配与原始数据帧不同的数据类型,是否可以在不发生这种情况下进行移位?(但仍在使用pandas shift) 使用fill\u value参数几乎就足够了,但是如果有任何不是数字的数据类型,它仍然会更改数据类型 将熊猫作为pd导入 数据=[ {'a':1,'b':5.2,'c':True}, {'a':5,'b':8.5,'c':False}, {'a':2,'b':2.6,'c':True} ] df=pd.DataFrame(数据) 打印

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

使用
fill\u value
参数几乎就足够了,但是如果有任何不是数字的数据类型,它仍然会更改数据类型

将熊猫作为pd导入
数据=[
{'a':1,'b':5.2,'c':True},
{'a':5,'b':8.5,'c':False},
{'a':2,'b':2.6,'c':True}
]
df=pd.DataFrame(数据)
打印(df.dtypes)
打印(df.shift(1.D类型)
打印(df.shift(1,填充值=0).D类型)
输出:

a      int64
b    float64
c       bool
dtype: object

a    float64
b    float64
c     object
dtype: object

a      int64
b    float64
c     object
dtype: object
您可以像这样使用:


它不完全是bool类型,但它比object好,我想这能回答你的问题吗?事实并非如此,我已经更新了问题以更好地解释它。
print (df.shift(1).convert_dtypes().dtypes)
a      Int64
b    float64
c    boolean
dtype: object