将数据保存到 CSV 文件后如何保持相同的数据类型?

Ani*_*Ant 1 python csv dataframe pandas

我正在使用 Pandas 将数据保存到 CSV 文件。我有一个带有 dtype 的重要列:datetime64[ns]。当我从 CSV 文件读回数据时,数据类型以某种方式更改为对象。如何在保持相同数据类型的同时写入、读取?这与编码类型有关吗?

df = pd.io.sql.read_sql(sql, cnxn)
df.to_csv(fileName)
df.TimeSeries
Run Code Online (Sandbox Code Playgroud)

名称:TimeSeries,长度:10000,数据类型:datetime64[ns]

DF = pd.read_csv(fileName, sep=',')
DF.TimeSeries
Run Code Online (Sandbox Code Playgroud)

名称:TimeSeries,长度:10000,dtype:对象

jpp*_*jpp 6

CSV 文件不存储数据类型。CSV 文件中的数据以文本形式存储。

您最好的选择是:

  1. 如果适合您的用例,则以序列化或其他类型感知格式(pickle、HDF5)存储。
  2. 使用 的parse_dates参数pd.read_csv,例如df = pd.read_csv(filename, sep=',', parse_dates=['Date'])。有关更多详细信息,请参阅pd.read_csv 文档

第二种选择只是一种解决方法。datetime当您将数据读入数据帧时,它会将文本转换回。

  • 我试过 DataFrame.to_pickle 和 pandas.read_pickle。效果很好。谢谢。 (2认同)