у меня есть CSV-файл с форматом, как это:Разделить Панда Dataframe на несколько меньших dataframes на основе пустых строк
Header 1, Header 2, Header 3
'' '' ''
value 1, value2, value 3
value 1, value2, value 3
value 1, value2, value 3
'' '' ''
value 1, value 2, value 3
value 1, value 2, value 3
value 1, value 2, value 3
'' '' ''
Я могу читать его в панде dataframe, но сегменты, окруженные пустыми строками (обозначаемый по ''
) должны обрабатываться индивидуально. Каким будет самый простой способ разделить их на более мелкие фреймы данных, основанные на том, что они находятся между пустыми строками? У меня довольно много таких сегментов.
Было бы проще разделить их на более мелкие фреймы данных или удалить сегмент из исходной части данных после его обработки еще проще?
EDIT: ответ
Ians был правильным, но в моем случае некоторые из моих файлов не было просто без кавычек в пустых строках, так что тип не является строкой. Я изменил свой ответ немного, и это работало на них:
df['counter'] = (df['Header 1'].isnull()).cumsum()
df = df[df['Header 1'].isnull() == False] # remove empty rows
df.groupby('counter').apply(lambda df: df.iloc[0])
Простейшим было бы добавить счетчик, который увеличивается каждый раз, когда он встречает пустую строку. Затем вы можете получить свои отдельные данные с помощью 'df.groupby ('counter')'. Если вы заинтересованы, я могу написать ответ. – IanS
Это хорошая идея, я попробую написать ее на моем конце, но если вы напишете, я буду принимать ее в качестве ответа – GreenGodot