将一个不同的Dataframe列表保存到json

时间:2017-05-28 08:55:50

标签: python json

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

<p>Some text</p>
<p>Some text</p>
<h2>title</h2>
<ul>
   <li> element </li>
   <li> element </li>
   <li> element </li>
...
</ul>

<h2>title 2</h2>
<ul>
   <li> element </li>
   <li> element </li>
   <li> element </li>
...
</ul>

etc.

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

2 个答案:

答案 0 :(得分:2)

不详细了解熊猫DataFrames,所以也许这不起作用。但是如果它是传统的dict,你应该能够使用json模块。

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

您可以使用json.dumps(list_df)将其写入文件,这会将您的dicts列表转换为有效的json表示。

import json
with open("my_file", 'w') as outfile:
    outfile.write(json.dumps(list_df))

编辑:由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.DataFrame和pd.Series有一个to_json()方法,也可以查看这些方法。

答案 1 :(得分:1)

要将DataFrames列表导出到单个json文件,您应该将列表转换为DataFrame,然后使用to_json()函数,如下所示:

df_to_export = pd.DataFrame(list_df)
json_output = df_to_export.to_json()
with open("output.txt", 'w') as outfile:
    outfile.write(json_output)

这会将完整的数据集导出到单个json字符串并将其导出到文件。