Как загрузить в Pandas текстовый файл, содержащий несколько списков? ⇐ Python

Программы на Python
Anonymous
Как загрузить в Pandas текстовый файл, содержащий несколько списков?

Сообщение Anonymous »

У меня есть текстовый файл, который я хотел бы загрузить в фрейм данных Pandas и создать на его основе несколько графиков. Данные представляют собой данные некоторых спутников GPS и содержат информацию для нескольких видимых спутников за любой заданный период времени.
Имеющийся у меня текстовый файл имеет следующую упрощенную структуру:

Код: Выделить всё

1077, 473055000, 0, 1,['003','1C','0.002','0.003','38','-0.4']['003','1W','0.032','0.023','40','-0.4']['006','1C','0.124','0.333','19','-0.5']['006','1W','0.100','0.232','29','-0.6']
1077, 473056000, 0, 1,['003','1C','0.012','0.004','39','-0.5']['003','1W','0.042','0.025','41','-0.41']['006','1C','0.125','0.343','39','-0.53']['006','1W','0.110','0.234','39','-0.56']['006','5Q','0.330','0.234','36','-0.51']
Что я хотел бы видеть в своем фрейме данных, чтобы его можно было построить, так это:

Код: Выделить всё

1077, 473055000, 0, 1,003,1C,0.002,0.003,38.5,-0.4
1077, 473055000, 0, 1,003,1W,0.032,0.023,40.6,-0.4
1077, 473055000, 0, 1,006,1C,0.124,0.333,19.2,-0.5
1077, 473055000, 0, 1,006,1W,0.100,0.232,29.3,-0.6
1077, 473056000, 0, 1,003,1C,0.012,0.004,39.2,-0.5
1077, 473056000, 0, 1,003,1W,0.042,0.025,41.6,-0.41
1077, 473056000, 0, 1,006,1C,0.125,0.343,39.8,-0.53
1077, 473056000, 0, 1,006,1W,0.110,0.234,39.2,-0.56
1077, 473056000, 0, 1,006,5Q,0.330,0.234,36.4,-0.51
Для пояснения: 473055000 и 473056000 — это миллисекунды от начала недели GPS. Мне нужно будет выполнить отдельное преобразование в UTC, но это уже другая проблема. Значения в скобках относятся к отдельным спутникам (003 и 006 в первом значении в скобках) и к различным типам сообщений от этих спутников (значения 1C, 1W и 5Q, второе значение в скобках).
Учитывая приведенный выше набор данных, я попытался загрузить его в DataFrame Python Pandas, используя следующий код:

Код: Выделить всё

import pandas as pd

file = r'D:\projects\test-data.csv'

df = pd.DataFrame(file,columns = ['id','time','steer','extclk','prn','msg','pseudoR','carrPh','A','CNR','B','C'])

print(df)
Однако я получаю следующее сообщение:

Код: Выделить всё

ValueError: DataFrame constructor not properly called.
Загрузка данных из CSV-файла обычно довольно проста, однако структура данных, которую я имею в этом файле, сильно усложняет ситуацию. Есть ли у кого-нибудь предложения относительно того, как я могу этого добиться?

Подробнее здесь: https://stackoverflow.com/questions/790 ... iple-lists

Вернуться в «Python»