У меня есть небольшой CSV-файл, который содержит таблицы / наборы данных не более 50 строк каждая, и каждый разделен пустой строкой. Пример того, как выглядит файл:
Info_header 1
Info_header 2
NaN
Title1, Title2
Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8
Steve,Indiana,0,0,2,1,2,5
Megan,New York,34,0,0,5,3,2
...
NaN
-Total-,,34,0,2,6,5,7
NaN
Title3,Title4
ColumnA,ColumnB,ColumnC,ColumnD,ColumnE,ColumnF,ColumnG,ColumnH
...
Изменение размера строки и столбца изменяется. Строка с одним NaN представляет собой пустой ряд. Поскольку таблицы имеют имена, l oop, который я планирую использовать, должен начинаться ниже строки с заголовком таблицы:
df = read_csv('data.csv')
start_value = df.loc[(df[0] == "Title1")
& (df[1] == "Title2")]
start_value = (start_value.index + 1)
# my loop:
empty_list = []
for index, row in df.loc[start_value[0]].iteritems():
if pd.isnull(row[1]):
empty_list.append(df[row])
else:
break
Мои логики c - это если встретятся Title1 и Title2 мои критерии, затем добавить строки под строкой заголовка и прекратить добавление, если в строке нет данных. Как я могу это сделать? Я также понимаю, что использование циклов в фреймах данных - не лучшее решение, альтернативные решения приветствуются.