Python 是否可以使用移位功能并保留数据类型?
当使用方法shift from Pandas时,它会重新分配与原始数据帧不同的数据类型,是否可以在不发生这种情况下进行移位?(但仍在使用pandas shift) 使用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(数据) 打印
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