gpt4 book ai didi

python - 在保留数据类型的同时导出 Pandas 数据框的格式是什么?不是 CSV;数据库? Parquet ?

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:03 24 4
gpt4 key购买 nike

我的工作流程通常涉及将一些数据(通常来自 CSV 文件)加载到 pandas 数据框中,对其进行清理,为每一列定义正确的数据类型,然后将其导出到 SQL 服务器。

对于这些情况,当 SQL 服务器不可用时,有什么好的替代方法来存储已清理的数据和每列数据类型的显式定义?

  • 我测试过的唯一真正的解决方案是导出到 sqlite .db文件,使用答案here确保日期被读取为日期。
  • Feather、HDF5、Parquet 怎么样? Pandas supports them但我对这些格式了解不多。我读过 feather is not recommended for long-term storage(因为 API 可能会改变?不清楚)

  • 我不确定是否使用 pickle:我知道它不是一种安全格式,而且 API 不断变化和向后突破兼容性

  • CSV 并不是真正的选择,因为根据我的数据推断数据类型通常是一场噩梦;将数据读回 pandas 时,我需要明确声明格式,包括日期格式,否则:

    • pandas 可以创建列,其中一行是 dd-mm-yyyy,另一行是 mm-dd-yyyy(参见 here)。加上
    • 我有很多文本列,其中前 10k 行似乎是数字,接下来的 100 行是文本,因此大多数软件会推断该列是数字,然后导入失败。 也许我需要创建一个函数来导出一个包含所有数据类型定义、日期格式等的辅助文件?可行但麻烦

更新:这是一个有趣的比较,HDF5 是最快的格式:https://medium.com/@bobhaffner/gist-to-medium-test-db3d51b8ba7b

我似乎明白 HDF5 和 Parquet 之间的另一个区别是 datetime64 在 Hdf5 中没有直接等效项。大多数人似乎将他们的日期作为 ISO 日期格式 (yyyy-mm-dd) 字符串存储在 HDF5 中。

最佳答案

如果您的数据是二维表并且用于像 Apache Spark 这样的大数据处理,请使用 parquet。正如您提到的那样,HDF5 不适合处理日期/时间。

如果您的数据有 3 个或更多维度,HDF5 将是一个不错的选择 - 特别是对于长期归档、可移植性和共享。

如果性能很重要,Apache Feather 是最快的。

关于python - 在保留数据类型的同时导出 Pandas 数据框的格式是什么?不是 CSV;数据库? Parquet ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55343416/

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