如何将Pandas DataFrame指定列保存为换行分隔的JSON文件
解决方法
直接选中id列并保持其为DataFrame类型(用双层方括号),再调用to_json即可得到你想要的输出:
import pandas as pd df = pd.DataFrame({"id":[123,465,978,505,567], "feature":[1.1,1.2,1.2,6.7,8.9]}) # 用双层方括号选中id列,返回DataFrame而非Series df[['id']].to_json("temp.json", orient="records", lines=True)
生成的temp.json内容如下:
{"id":123} {"id":465} {"id":978} {"id":505} {"id":567}
为什么之前的方法不行?
- 方法1问题:
df.to_json(...)是对整个DataFrame操作,自然会包含所有列,所以输出带了feature字段。 - 方法2问题:
df['id']返回的是Series类型,当对Series使用orient="records"时,pandas只会输出纯值,不会保留键名。而用df[['id']]返回的是只有一列的DataFrame,此时orient="records"会正常生成包含键名的JSON对象。
内容的提问来源于stack exchange,提问作者Anita
相关产品推荐
相关产品推荐

