簡體   English   中英

PANDAS:將 int64 轉換為字符串導致 object dtype

[英]PANDAS : converting int64 to string results in object dtype

我有一個 dataframe:

df1 = pd.DataFrame({'GL': [2311000200.0, 2312000600.0, 2330800100.0]})

df1.dtypes 是浮點數,所以首先我將其轉換為 int64 以刪除.0 數字 df1.GL = df1.GL.astype('int64')

然后我嘗試將其轉換為 str 但我收到 object dtype。

在此處輸入圖像描述

有誰知道可能是什么原因?

您可以使用以下命令強制它使用string dtype:

>>> df1.GL.astype("string")

df1.GL

0    2311000200.0
1    2312000600.0
2    2330800100.0
Name: GL, dtype: string

但是, object dtypes 對於大多數字符串操作都很好。 根據 文檔

為了向后兼容,object dtype 仍然是我們推斷字符串列表的默認類型

object類型實際上是 pandas dataframe 中的字符串。

如果您想將數據保留為字符串,請使用df.to_excel()而不是df.to_csv 這是因為在打開 CSV 文件時,Excel 會自動將數字數據轉換為數字。

df1 = pd.DataFrame({'GL': [2311000200.0, 2312000600.0, 2330800100.0]})
df1.GL = df1.GL.astype('int64').astype('string')
df1.to_excel('test.xlsx', index=False)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM