pandas无法将下面的txt文件解析为pandas数据帧,只有一列

2024-06-23 19:08:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的txt文件格式:

[{
  "lng": "111.68389897298637",
  "odometer": 0,
  "busSpeed": "0.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "8eba1ae2fd014eaf948b",
  "cursorOverGround": "0",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468898000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.86856137377131",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}, {
  "lng": "111.68364330061954",
  "odometer": 0,
  "busSpeed": "11.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "ff42c6cca2e14583b84f",
  "cursorOverGround": "280",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468919000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.868510932496115",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}]

当我想将其导入数据帧时,我只得到一列:

column

但是当我选择一些txt列表时,我可以得到正确的答案:

enter image description here

有人能告诉我如何正确地使用txt文件吗?感谢您的帮助!谢谢。你知道吗


Tags: txtlngodometerdriveruuidlineuuidc2e0313000fba04c940a4be0f9edb9c521c8realtimestatusdistancetopreposition
2条回答

你需要^{}。完成下面的示例。你知道吗

设置

import pandas as pd
from io import StringIO

mystr = StringIO("""[{
  "lng": "111.68389897298637",
  "odometer": 0,
  "busSpeed": "0.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "8eba1ae2fd014eaf948b",
  "cursorOverGround": "0",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468898000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.86856137377131",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}, {
  "lng": "111.68364330061954",
  "odometer": 0,
  "busSpeed": "11.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "ff42c6cca2e14583b84f",
  "cursorOverGround": "280",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468919000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.868510932496115",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}]""")

解决方案

# replace mystr with 'file.txt'
df = pd.read_json(mystr)

结果

print(df)

  allAlarms busSpeed                               busUuid cursorOverGround  \
0         7     0.00  9d9648ff0375a04702080cc03a4c20377ea8                0   
1         7    11.00  9d9648ff0375a04702080cc03a4c20377ea8              280   

                devUuid  distanceToPrePosition driverName  \
0  3d16fedb858842199cb3                      0        贾爱俊   
1  3d16fedb858842199cb3                      0        贾爱俊   

                             driverUuid   drvIcCard     gatherTime  \
0  28b3ea130a6ad049a10b041037e2550d80f5  3168310624  1506468898000   
1  28b3ea130a6ad049a10b041037e2550d80f5  3168310624  1506468919000   

      ...     lineType                              lineUuid  \
0     ...            0  c2e0313000fba04c940a4be0f9edb9c521c8   
1     ...            0  c2e0313000fba04c940a4be0f9edb9c521c8   

                  lng odometer posIsInStation               posUuid  \
0  111.68389897298637        0                 8eba1ae2fd014eaf948b   
1  111.68364330061954        0                 ff42c6cca2e14583b84f   

  realTimeStatus relativeLocation sationName  sationUuid  
0              0                0                         
1              0                0                         

不能写评论,因此必须写一个答案。你知道吗

请先查看以下链接:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_table.htmlhttps://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

您很可能需要检查delimiter/sep和header参数,才能将文件正确地解析为数据帧。你知道吗

请提供一个最低限度的代码示例,说明您到目前为止尝试了什么,或者是什么代码导致了您的问题。你知道吗

只要将上面的示例与python中已有的列表一起使用就可以了:

import pandas as pd  
file = [{
...   "lng": "111.68389897298637",  
...   "odometer": 0,  
...   "busSpeed": "0.00",  
...   "relativeLocation": 0,  
...   "realTimeStatus": "0",  
...   "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",  
...   "posUuid": "8eba1ae2fd014eaf948b",  
...   "cursorOverGround": "0",  
...   "posIsInStation": "",  
...   "sationName": "",  
...   "distanceToPrePosition": 0,  
...   "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",  
...   "drvIcCard": "3168310624",  
...   "lineType": "0",  
...   "isOffset": "1",  
...   "driverName": "???",  
...   "gatherTime": 1506468898000,  
...   "allAlarms": "7",  
...   "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",  
...   "lat": "40.86856137377131",  
...   "devUuid": "3d16fedb858842199cb3",  
...   "sationUuid": ""  
... }, {  
...   "lng": "111.68364330061954",  
...   "odometer": 0,  
...   "busSpeed": "11.00",  
...   "relativeLocation": 0,  
...   "realTimeStatus": "0",  
...   "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",  
...   "posUuid": "ff42c6cca2e14583b84f",  
...   "cursorOverGround": "280",  
...   "posIsInStation": "",  
...   "sationName": "",  
...   "distanceToPrePosition": 0,  
...   "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",  
...   "drvIcCard": "3168310624",  
...   "lineType": "0",  
...   "isOffset": "1",  
...   "driverName": "???",  
...   "gatherTime": 1506468919000,  
...   "allAlarms": "7",  
...   "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",  
...   "lat": "40.868510932496115",  
...   "devUuid": "3d16fedb858842199cb3",  
...   "sationUuid": ""  
... }]  


df = pd.DataFrame(file)
df
  allAlarms busSpeed                               busUuid cursorOverGround  \
0         7     0.00  9d9648ff0375a04702080cc03a4c20377ea8                0
1         7    11.00  9d9648ff0375a04702080cc03a4c20377ea8              280

                devUuid  distanceToPrePosition driverName  \
0  3d16fedb858842199cb3                      0        ???
1  3d16fedb858842199cb3                      0        ???

                             driverUuid   drvIcCard     gatherTime  \
0  28b3ea130a6ad049a10b041037e2550d80f5  3168310624  1506468898000
1  28b3ea130a6ad049a10b041037e2550d80f5  3168310624  1506468919000

      ...     lineType                              lineUuid  \
0     ...            0  c2e0313000fba04c940a4be0f9edb9c521c8
1     ...            0  c2e0313000fba04c940a4be0f9edb9c521c8

                  lng odometer posIsInStation               posUuid  \
0  111.68389897298637        0                 8eba1ae2fd014eaf948b
1  111.68364330061954        0                 ff42c6cca2e14583b84f

  realTimeStatus relativeLocation sationName  sationUuid
0              0                0
1              0                0

[2 rows x 22 columns]

相关问题 更多 >

    热门问题