json - Python JSON文件到排序的熊猫数据框
问题描述
我有一个以下格式的 JSON 文件:
[
{
"positionmessage": {
"name": "ship-1",
"sog": 0,
"latitude": 51.82284,
"eni": "02010000",
"mmsi": "100000"
}
},
{
"positionmessage": {
"name": "ship-2",
"sog": 0,
"latitude": 51.81966,
"eni": "02020000",
"mmsi": "200000"
}
},
{
"positionmessage": {
"name": "ship-2",
"sog": 0,
"latitude": 51.8196,
"eni": "02020000",
"mmsi": "200000"
}
},
{
"positionmessage": {
"name": "ship-3",
"sog": 0,
"latitude": 51.8225,
"eni": "02030000",
"mmsi": "300000"
}
},
{
"positionmessage": {
"name": "ship-4",
"sog": 0,
"latitude": 51.8291,
"eni": "02040000",
"mmsi": "400000"
}
}
]
我想获得一个带有列变量的熊猫数据框:
- 第 1 列:名称
- 第 2 列:SOG
- 第三栏:纬度等
行上应该是所有列的内容。我该怎么做呢?
解决方案
与行参数一起使用read_json
,转换为列表,然后转换为DataFrame
:
L = pd.read_json('file.json', lines=True)['positionmessage'].tolist()
df = pd.DataFrame(L)
print (df)
name sog latitude eni mmsi
0 ship-1 0.0 51.82284 02010000 100000
1 ship-2 0.0 51.81966 02020000 200000
2 ship-2 0.0 51.81960 02020000 200000
3 ship-3 0.0 51.82250 02030000 300000
4 ship-4 0.0 51.82910 02040000 400000
5 ship-5 8.0 51.82384 02050000 500000
6 ship-6 0.0 51.82470 02060000 600000
7 ship-7 0.0 51.81920 02070000 700000
8 ship-6 0.0 51.82470 02060000 600000
9 ship-8 9.0 51.82870 02080000 800000
10 ship-9 0.0 51.82710 02090000 900000
11 ship-10 9.0 51.82620 02010000 100000
12 ship-11 0.0 51.81930 02011000 110000
13 ship-12 10.0 51.82390 02012000 120000
推荐阅读
- python - Python - 如何使用户输入不区分大小写?
- django - Deploying Django Channels: how to keep Daphne running after exiting shell on web server
- java - 如何使用 Java ReadFile 读取换行符
- vba - Sorting data from one column
- python - 加入/合并具有多个键的数据框
- ios - UIView 与 UITableViewCell 中的多行标签
- javascript - 在 npmjs 中找不到包 selenium-webdriver/chrome
- python - 将列表解包到列表中
- javascript - 使用 vue-chart 渲染反应性图表(未定义属性或方法“数据”)
- mysql - 子查询返回多于 1 行| 是否可以使用“AND NOT IN”?