Python 将数据帧写入换行符分隔的JSON

Python 将数据帧写入换行符分隔的JSON,python,json,pandas,Python,Json,Pandas,我首先通过Pandas read_CSV()函数将CSV读入Pandas数据帧。现在数据位于实际的数据帧中,我尝试编写如下内容: for row in df.iterrows(): row[1].to_json(path_to_file) 这是可行的,但只有最后一行被保存到磁盘,因为每次调用第[1]行时,我都会重写该文件。我尝试了其他一些文件处理选项,但没有效果。谁能透露一些关于如何进行的见解 谢谢大家! 如果您试图使用iterrows编写DF,我想您应该看看: df.to_json(

我首先通过Pandas read_CSV()函数将CSV读入Pandas数据帧。现在数据位于实际的数据帧中,我尝试编写如下内容:

for row in df.iterrows():
    row[1].to_json(path_to_file)
这是可行的,但只有最后一行被保存到磁盘,因为每次调用第[1]行时,我都会重写该文件。我尝试了其他一些文件处理选项,但没有效果。谁能透露一些关于如何进行的见解


谢谢大家!

如果您试图使用
iterrows
编写DF,我想您应该看看:

df.to_json(orient='records') # List of lists of values
# [[1, 2], [3,4]]
或:

或写入{index:col value}的dict:

df.A.to_json()
# {0: 1, 1: 3}

您可以将缓冲区传递到
df.to_json()


要从数据帧
df
创建以换行符分隔的json,请运行以下命令

df.to_json("path/to/filename.json",
           orient="records",
           lines=True)

请密切注意那些可选的关键字参数!熊猫
0.19.0

中添加了
lines
选项,您是否有一些示例输入/输出。。。有两种编写DF的方法,我认为这两种方法可能有用——否则,您只是想编写一个特定的列吗?DataFrame本质上是数据的表表示。JSON的结构是什么?解决方案#1 df.to_JSON(orient='records')非常完美,除了记录是逗号分隔的,我需要它们是行分隔的。还有其他建议吗?我不理解第一个解决方案和第二个解决方案之间的区别-我认为它们是相同的代码:)@uspowpow您可以使用
line
arg:
df.to_json(orient=“records”,lines=True)
这非常有效,谢谢!如果我有15个名声,我会支持你的回答。很高兴能帮上忙。不需要投票,你可以接受这个正确的答案。诺亚,这将是一个愚蠢的问题,但我如何把它读回一本书呢?我试着用open('jason_lines_file')作为f:for-in-f:pd中的行;但作为提示,您需要执行
pd.read_json(line,typ=“series”)
,然后从输出构建一个框架。这会引发一个问题,您确定这是您要保存内容的格式吗?:)
In [1]: import pandas as pd

In [2]: df = pd.DataFrame({"a":[1,3,5], "b":[1.1,1.2,1.2]})

In [3]: df
Out[3]: 
   a    b
0  1  1.1
1  3  1.2
2  5  1.2

In [4]: f = open("temp.txt", "w")

In [5]: for row in df.iterrows():
    row[1].to_json(f)
    f.write("\n")
   ...:     

In [6]: f.close()

In [7]: open("temp.txt").read()
Out[7]: '{"a":1.0,"b":1.1}\n{"a":3.0,"b":1.2}\n{"a":5.0,"b":1.2}\n'
df.to_json("path/to/filename.json",
           orient="records",
           lines=True)