gpt4 book ai didi

python - 保存保存为 csv 的 pandas 数据框的数据类型

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:53 32 4
gpt4 key购买 nike

我希望能够为我的 df 保存 dtypes,并且当我下次读取 csv 时,我想证明一个 dtypes 数组。

我尝试了以下方法:

types_dic = df.dtypes.to_dict()
np.save("dtypes.npy", types_dic, allow_pickle=True)
dtyp = np.load("dtypes.npy", allow_pickle=True)
df2 = pd.read_csv(join(folder_no_extension, file), dtype=dtyp)

但是它不起作用--datetime时间没有恢复...

如果我显式创建字典,它也不起作用

types_dic = {}
for t in df.dtypes:
types_dic[t] = str(df.dtypes[t])



df.dtypes

BN object
School_Year datetime64[ns]
Start_Date datetime64[ns]
Overall_Rating object
Indicator_1.1 object
Indicator_1.2 object
Indicator_1.3 object
Indicator_1.4 object

df2.dtypes

BN object
School_Year object
Start_Date object
Overall_Rating object
Indicator_1.1 object
Indicator_1.2 object
Indicator_1.3 object
Indicator_1.4 object

最佳答案

首先,如果您不必将结果保存为 csv 文件,您可以使用 pandas 方法,例如 to_pickleto_parquet这将保留列数据类型。

其次,如果您确实想以 csv 格式保存结果并保留其数据类型,则 you can use read_csvparse_dates 参数。为此,您可以更新为:

    # Save non-date dtypes
non_date_dict = df.dtypes[df.dtypes != '<M8[ns]'].to_dict()
np.save("non_date_dict.npy", non_date_dict, allow_pickle=True)
non_date_dict2 = np.load("non_date_dict.npy", allow_pickle=True)
# Save date dtypes
date_col_list = list(df.dtypes[df.dtypes == '<M8[ns]'].index)
np.save("date_col_list.npy", date_col_list, allow_pickle=True)
date_col_list2 = np.load("date_col_list.npy", allow_pickle=True)
# Load
df2 = pd.read_csv('pandas_dtypes.csv',
dtype=non_date_dict2,
parse_dates=list(date_col_list2))

关于python - 保存保存为 csv 的 pandas 数据框的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829190/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com