python - 摆脱 json 输出中具有空值的列
问题描述
我正在使用 pandas 函数 .to_json 将数据从数据帧写入 json 文件,如下所示:
xx.to_json('file_path',orient='records',lines=True)
其输出如下所示:
{"speed":null,"state":4.0,"stop_trigger":null,"t":1527237121263,"target_speed":null}
{"speed":null,"state":null,"stop_trigger":null,"t":1527237121264,"target_speed":400.0}
如果有空值,如何摆脱输出中的列?:
{"state":4.0,"t":1527237121263}
{"t":1527237121264,"target_speed":400.0}
解决方案
您可以迭代数据框以删除空列并创建字典列表。
然后使用json
模块将列表写入文件。
import pandas as pd
import json
df = pd.DataFrame([[np.nan, 4.0, np.nan, 1527237121263, np.nan],
[np.nan, np.nan, np.nan, 1527237121264, 400.0]],
columns=['speed', 'state', 'stop_trigger', 't', 'target_speed'])
d = [dict(row.dropna()) for idx, row in df.iterrows()]
with open('file.json', 'w') as fp:
json.dump(d, fp)
推荐阅读
- java - pom.xml 文件在尝试添加依赖项时显示错误
- node.js - 仅安装 devDependencies - `swagger-express-middleware` 会阻止 `glob` 安装
- c# - C# 以某种方式将排名添加到列表元素
- javascript - 如何最小化 AWS Chime SDK 浏览器客户端使用的 JavaScript 文件的大小
- r - 2-Sample Cramer-Von Mises 统计的演示 - 如何显示总和以使 CYM 统计的线
- javascript - Reactjs复选框在组件的更新状态下不起作用
- oracle-sqldeveloper - 无法在 SQL Developer for Oracle 的单独目录中导出数据
- javascript - 如何批量提交()用于firestore大量文档?
- python - 在 ListView django 中进行分页
- java - 设置用于验证从服务器接收到的证书的最小 RSA 密钥长度