【问题标题】:Pandas' feather format is slow when writing a column of NonePandas 的羽毛格式在写一列 None 时很慢
【发布时间】:2020-01-12 13:53:15
【问题描述】:

我正在测试羽毛格式作为存储 pandas DataFrame 文件的一种方式。在编写完全由 None 组成的列时,feather 的性能似乎非常差(info() 给出 0 个非空对象)。下面的代码很好地封装了这个问题:

    df1 = pd.DataFrame(data={'x': 1000*[None]})
    %timeit df1.to_feather('.../x.feather')
    5.35 s ± 303 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
    %timeit df1.to_pickle('.../x.pkl')
    734 ms ± 60.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
    %timeit df1.to_parquet('.../x.parquet')
    200 ms ± 5.84 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

我使用的是羽毛格式 0.4.0、pandas 0.23.4 和 pyarrow 0.13.0。

我怎样才能让这些类型的 DataFrames 保存而不需要永久保存?

【问题讨论】:

  • 你的问题是什么?
  • 谢谢,刚刚添加了这个问题,因为我想这并不明显“我怎样才能让这些类型的 DataFrames 保存而不需要永远保存?”
  • 你能更新到更新版本的 pandas 和 pyarrow 吗?您使用的版本不是最新的,现在问题可能已经解决了。
  • 这个问题与 pandas 本身无关,我使用的是最新的 conda 批准版本的 pyarrow。
  • 在最新的pyarrow大师上也可以看到。我打开了issues.apache.org/jira/browse/ARROW-6529 来跟踪它,因为我同意差异似乎很奇怪。

标签: python pandas pyarrow feather


【解决方案1】:

您可以尝试添加特定的数据类型。话虽如此,就羽毛性能的糟糕程度而言,这些数字有点令人惊讶。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-20
    • 2019-06-18
    • 2018-08-22
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 2021-06-12
    • 2020-08-21
    相关资源
    最近更新 更多