#python #pandas #csv
#python #pandas #csv
Вопрос:
У меня проблема с моими CSV-файлами. Мне нужно обработать sampleFile
to resultFile
. И я пишу весь код для CSV с заголовком.
Допустим, что выглядит csv (КАЖДЫЙ пробел в файлах ниже равен t или t t):
Head
Ver_info
number_Ver
data_source
Data.sam
Number Sample Val1 Val2 Val3
231 a1 a1 b1 c1
231 a2 a2 b2 c2
231 a3 a3 b3 c3
etc.
И … мой код выбирает Ver_info, сохраняет как новую переменную (используйте ее позже как newFileName), а затем фрейм данных загружается как все заголовки НИЖЕ и обрабатывается. Итак, мой результирующий файл выглядит:
231 a1e a1 b1
231 a2e a2 b2
231 a3e a3 b3
etc.
Теперь у меня проблема с отсутствием заголовочных файлов, например.
231 a1 a1 b1 c1
231 a2 a2 b2 c2
231 a3 a3 b3 c3
Как проверить перед загрузкой (я загружаю файл с помощью pd.read_csv(file, skiprow = num)
, где num
количество строк перед заголовками, включает), если в файле нет заголовка и содержимого выше?
Резюме: один файл начинается с содержимого заголовка, а затем разделяется на t. У меня есть код для процесса, который. Другой файл содержит только данные, разделенные по t, без содержимого и заголовка. Мне нужно проверить, прежде чем обрабатывать это. И… Содержимое не является постоянным. : (Я не могу сделать что-то вроде: if 'Head' in line = we have a header
Я попробовал с dataframe.shape, потому что я думал, что форма во вторых файлах будет иметь много столбцов (при этом в первом случае, когда я загружаю файл, у меня есть только один), но во втором случае я тоже получил один столбец, потому что файл разделяется символом t. Но я не могу отделить файл от первого, потому что я получил ошибку (первый тип файла имеет один столбец в первых 9-12 строках, а в следующих строках несколько столбцов, и я получил ошибку)
Есть у кого-нибудь идеи, как с этим справиться?
Комментарии:
1. если вы знаете количество столбцов, возможно, сначала просто прочитайте файл построчно и получите строку, в которой вы получаете количество разделителей (‘ t’), как вы и ожидали, а затем установите для вашего skip_rows это значение.
2. Сначала вы должны забыть о pandas и открыть файл, чтобы прочитать его как текст, чтобы узнать, содержит ли он заголовок, и если да, то что это такое. Затем вы закрываете его, как обычно обрабатываете
pandas.read_csv
, поскольку знаете, что пропустить.3. Оба совета ценны для меня. Большое вам спасибо!