У меня есть несколько файлов CSV, которые содержат варианты одной и той же информации.
Я хочу извлечь столбцы из каждого из них на основе ключевых слов. Однако заголовок каждого файла не обязательно начинается с 1-й строки, что затрудняет определение статической переменной для ´skiprows = ´.
Вот несколько примеров CSV
CSV1
Here are the instructions that you should follow.
Follow them closely, OK, to define the Type and Place.
Type Number Place Exists
cat 2 home yes
dog 2 field yes
fish 3 sea yes
CSV2
.
I know have this type of information.
This is not easy to define when the location and style are the same.
Animal Style Quantity Location Exists
horse 3 field yes
lion 2 safari no
tiger 3 jungle yes
CSV3
Number Local Species
2 home rabbit
3 tank turtle
3 sea shark
Подход «pandas», которому бы я следовал, если бы все «CSV» имели легко идентифицируемый заголовок, был следующим:
colFilters = ['number','local','species','style','quantity','location','type','number','place']
df = read_CSV(CSV1,skip_blanks_rows=True)
df.columns = map(str.lower, df.columns)
df = df.filter(regex='|'.join(colFiltersFilters),axis=1)
df.head
Я мог бы пропустить строки, которые не содержат ключевых слов, но есть ключевые слова, которые иногда появляются в «инструкциях», которые расположены в разных местах над заголовком.
Есть ли способ, которым «панды» могут использовать конкретную информацию для идентификации столбцов заголовка? Есть ли лучший подход к этой проблеме, чем просто полагаться на информацию заголовка и / или количество заголовков?