Я использую Pandas для организации файлов CSV для последующего построения с помощью matplotlib. Сначала я создаю фрейм данных Pandas, чтобы найти строку, содержащую 'Pt'. Это то, что я ищу, чтобы использовать в качестве строки заголовка. заголовок
Затем я сохраняю индекс этой строки и применяю его к аргументу skiprow при создании нового фрейма данных, который я буду использовать.
Как ни странно, в зависимости от формата файла, даже если найден правильный индекс, в качестве заголовка отображается неправильная строка. Например, обратите внимание, что в строке Pandas 54 после вкладки стоит «Pt»:
правильный индекс в первом файле
Датафрейм корректно выводится здесь.
правильный кадр данных в первом файле
Для другого файла строка 44 корректно распознается с наличием 'Pt'.
правильный индекс для второго файла
Но фрейм данных включает строку 43 в качестве заголовка!
неверный фрейм данных во втором файле
Я попытался установить header = 0, header = none. Я что-то упустил?
Вот код
entire_df = pd.read_csv(file_path, header=None)
print(entire_df.head(60))
header_idx = -1
for index, row in entire_df.iterrows(): # find line with desired header
if any(row.str.contains('Pt')):
print("Yes! I have pt!")
print("Header index is: " + str(index))
print("row contains:")
print(entire_df.loc[[index]])
header_idx = index # correct index obtained!
break
df = pd.read_csv(file_path, delimiter='\t', skiprows=header_idx, header=0) # use line index to exclude extra information above
print(df.head())
Вот разделы двух файлов, которые дают разные результаты. Они сохраняются как файлы .dta. Я не могу поделиться файлами целиком.
file1 (правильно составленный фрейм данных)
FRAMEWORKVERSION QUANT 7.07 Framework Version
INSTRUMENTVERSION LABEL 4.32 Instrument Version
CURVE TABLE 16875
Pt T Vf Im Vu Pwr Sig Ach Temp IERange Over
# s V A V W V V deg C # bits
0 0.1 3.49916E+000 -1.40364E-002 0.00000E+000 -4.91157E-002 -4.22328E-001 0.00000E+000 1.41995E+003 11 ...........
1 0.2 3.49439E+000 -1.40305E-002 0.00000E+000 -4.90282E-002 -4.22322E-001 0.00000E+000 1.41995E+003 11 ...........
2 0.3 3.49147E+000 -1.40258E-002 0.00000E+000 -4.89705E-002 -4.22322E-001
file2 (кадр данных с неправильным заголовком)
FRAMEWORKVERSION QUANT 7.07 Framework Version
INSTRUMENTVERSION LABEL 4.32 Instrument Version
CURVE TABLE 18
Pt T Vf Vm Ach Over Temp
# s V vs. Ref. V V bits deg C
0 2.00833 3.69429E+000 3.69429E+000 0.00000E+000 ........... 1419.95
1 4.01667 3.69428E+000 3.69352E+000 0.00000E+000 ........... 1419.95
2 6.025 3.69419E+000 3.69284E+000 0.00000E+000 ........... 1419.95
3 8.03333 3.69394E+000 3.69211E+000 0.00000E+000 ........... 1419.95
Помощь будет высоко ценится.