Я использую Pandas для чтения таблицы файла журнала, разделенной ;
, которая содержит 16 строк информации о файле журнала. Эти строки обозначены #
перед ними.
# Logger type: CL2000
# HW rev: 7.2x
# FW rev: 5.79
# Logger ID: id0001
# Session No.: 94
# Split No.: 1
# Time: 20200222T230231
# Value separator: ";"
# Time format: 4
# Time separator: ""
# Time separator ms: ""
# Date separator: ""
# Time and date separator: "T"
# Bit-rate: 500000
# Silent mode: false
# Cyclic mode: false
Timestamp;Type;ID;Data
22T230231142;0;ad;1100000000000000
22T230231143;0;ac;0000f5ff04000000
22T230231143;0;ab;0000000000000000
22T230231143;0;aa;0000090000008000
22T230231143;0;a8;21005ac15cffd7ff
...
Проблема в том, что когда я использую Pandas для чтения этого файла, я говорю ему пропустить эти 16 строк заголовка с header
поле, но строка # Value separator: ";"
сбивает команду csv_read
, потому что она видит разделитель там. Как этого избежать?
Вызов
sample = pd.read_csv(filename, header=11, delimiter=';')
print(sample)
дает мне
Timestamp Type ID Data
0 22T230231142 0 ad 1100000000000000
1 22T230231143 0 ac 0000f5ff04000000
2 22T230231143 0 ab 0000000000000000
...
, который является правильным выводом, который я ищу, тогда как то, что «должно» быть правильный вызов функции
sample = pd.read_csv(filename, header=16, delimiter=';')
print(sample)
выводит
22T230231143 0 a8 21005ac15cffd7ff
0 22T230231144 0 a7 0e00000006000000
1 22T230231144 0 a6 aeffa9ff90ff0000
2 22T230231144 0 a5 59054a003d0083d5
...
, где верхняя строка - это имя столбца, взятого из середины данных. Когда я удалил символ ;
из заголовка и вызвал csv_read(filename, header=16, delimiter=';')
, был получен ожидаемый результат, поэтому это должна быть точка с запятой. Я не могу найти, как решить эту проблему в документации для read_csv или read_table, поэтому, если кто-нибудь знает, это было бы очень полезно.