Я пытаюсь получить разные группы из сгруппированного кадра данных в пандах, но получаю сообщение об ошибке.
Вот код:
import pandas as pd
table = pd.read_csv("April24_HD_T2_MMStack_Default_edges.csv")
table.drop(table.index[0:3], inplace = True)
table.groupby('TRACK_ID', sort = False)
zero = table.get_group('0')
Консоль выдает следующую ошибку:
Объект DataFrame не имеет атрибута get_group.
Есть идеи о том, что я делаю неправильно?






groupby не является операцией на месте, и вам необходимо присвоить результат переменной, чтобы получить доступ к get_group. Итак, просто назначьте его обратно table:
import pandas as pd
table = pd.read_csv("April24_HD_T2_MMStack_Default_edges.csv")
table.drop(table.index[0:3], inplace = True)
table = table.groupby('TRACK_ID', sort = False)
zero = table.get_group('0')
Спасибо за разъяснение. Являются ли единственные функции, которые являются функциями на месте, специально принимающими этот флаг?
@zachdalton в основном да, но есть несколько исключений
Ошибка, с которой вы столкнулись, связана с тем, что вы пытаетесь вызвать get_group для объекта DataFrame, но get_group на самом деле является методом объекта GroupBy, возвращаемого groupby.
По сути, вам просто нужно переназначить переменную table следующим образом:
import pandas as pd
table = pd.read_csv("April24_HD_T2_MMStack_Default_edges.csv")
table.drop(table.index[0:3], inplace = True)
# here
table = table.groupby('TRACK_ID', sort = False)
zero = table.get_group('0')
Кроме того, поскольку, возможно, здесь речь идет об опечатке, остерегайтесь разницы между .get_group(0) и .get_group("0") (я не была, поэтому потеряла на этом некоторое время). Если TRACK_ID содержит числовые значения, убедитесь, что вы передаете число get_group вместо строки. Например, если TRACK_ID содержит целые числа, вам следует использовать get_group(0) вместо get_group('0'). Также убедитесь, что передаваемое число или строка содержатся в столбце.
Попробуйте заменить эту строку
table.groupby('TRACK_ID', sort = False)наtable = table.groupby('TRACK_ID', sort = False). Ошибка, с которой вы столкнулись, связана с тем, что вы пытаетесь вызватьget_groupдля объекта DataFrame, ноget_groupна самом деле является методом объектаGroupBy, возвращаемогоgroupby.