#pandas #numpy #dataframe
#pandas #numpy #фрейм данных
Вопрос:
У меня большой фрейм данных (14 000 строк). Столбцы включают «заголовок», «x» и «y», а также другие случайные данные.
Для определенного заголовка я написал код, который в основном выполняет анализ, используя значения x и y для подмножества этих данных (но специфика для этого не важна).
Для этого заголовка (который является чем-то вроде «Номер детали Y1-17») имеется около 80 строк.
На данный момент я разработал только то, как заставить мой код работать с 1 подмножеством заголовков (т. Е. С одним набором строк с одинаковым заголовком) одновременно. Для этого я создал меньший фрейм данных из своего большого, используя:
df = pd.read_excel(r"mydata.xlsx")
a = df.loc[df['title'].str.contains('Y1-17')]
Но, учитывая, что существует около 180 таких небольших наборов данных, которые мне нужны для этого анализа, я не хочу делать это вручную.
Мой вопрос в том, есть ли способ автоматически создавать все меньшие фреймы данных, разделяя данные по уникальному значению «заголовок»? Вся помощь, которую я нашел, похоже, вам нужно указать «заголовок», чтобы создать подмножество. Я хочу подмножество всего этого, и я не хочу перечислять все названия заголовков, чтобы сделать это.
Я довольно много искал и ничего не нашел, однако я новичок, поэтому вполне возможно, что я пропустил какой-то действительно простой способ сделать это.
Я не уверен, важна ли его информация, но модули, с которыми я работаю, pandas и numpy
Спасибо за любую помощь!
Ответ №1:
Вы можете использовать Pandas groupby
Например:
df_dict = {key: title for key, title in df.copy().groupby('title', sort=False)}
Который создает словарь фреймов данных, каждый из которых содержит все столбцы и только строки, относящиеся к каждому уникальному значению title .