【问题标题】:How do I pass in a python pandas.Dataframe object as an argument to a celery task?如何将 python pandas.Dataframe 对象作为参数传递给 celery 任务?
【发布时间】:2018-01-29 22:00:24
【问题描述】:

我想将 pandas 数据框对象作为参数传递给 celery 任务。有没有办法可以做到这一点?我知道数据框对象不是 JSON 可序列化的,因此根据我当前的设置不能用作参数。

【问题讨论】:

    标签: python django pandas celery


    【解决方案1】:

    看起来我可以使用 pandas.Dataframe.to_json() 方法将给定的数据帧转换为 JSON。一旦我将 JSON 值传递给我的 celery 任务,我就可以使用 pd.read_json() 方法取回我的 pandas.Dataframe 对象。

    [1]https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html

    [2]https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html

    【讨论】:

      【解决方案2】:

      to_json 对我不起作用,它会自动尝试将字符串解析为日期时间,因此我的结果无效。

      我正在尝试序列化和反序列化 celery 结果,所以类似。 to_dict 为我工作。

      df_as_dict = df.to_dict()
      df = pd.DataFrame.from_dict(df_as_dict)
      

      【讨论】:

        猜你喜欢
        • 2015-04-12
        • 1970-01-01
        • 2018-10-19
        • 2019-11-13
        • 2016-02-28
        • 2018-01-04
        • 2019-04-10
        • 1970-01-01
        • 2012-03-30
        相关资源
        最近更新 更多