将不同数据帧的列表保存到json

2024-03-28 21:08:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有不同的pandas数据帧,我把它们放在一个列表中。 我想用json(或任何其他格式)保存这个列表,它可以被R读取

import pandas as pd

def create_df_predictions(extra_periods):
    """
    make a empty df for predictions  
    params: extra_periods = how many prediction in the future the user wants
    """
    df = pd.DataFrame({ 'model': ['a'], 'name_id': ['a'] })
    for col in range(1, extra_periods+1):
        name_col = 'forecast' + str(col)
        df[name_col] = 0

    return df

df1 = create_df_predictions(9) 
df2 = create_df_predictions(12)
list_df = [df1, df2]

问题是如何以可读格式为R保存list_df?注意,df1和df2的列数不同!在


Tags: nameinpandasdf列表for格式create
1条回答
网友
1楼 · 发布于 2024-03-28 21:08:55

不知道熊猫数据帧的细节,所以这可能行不通。但是,如果它是一种传统的dict,您应该能够使用json模块。在

df1 = create_df_predictions(9) 
df2 = create_df_predictions(12)
list_df = [df1, df2]

您可以使用json.dumps(list_df)将其写入一个文件,该文件将把dict列表转换为有效的json表示形式。在

^{pr2}$

编辑:正如DaveR评论的那样,数据帧是不可序列化的。您可以将它们转换为dict,然后将列表转储为json。在

import json
with open("my_file", 'w') as outfile:
    outfile.write(json.dumps([df.to_dict() for df in list_df]))

或者pd数据帧以及pd系列有一个to_json()方法,也许也可以看看。在

相关问题 更多 >