Как проверить содержимое файла в pandas?

#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. Оба совета ценны для меня. Большое вам спасибо!