Проблема Pandas: объект DataFrame не имеет атрибута get_group

Я пытаюсь получить разные группы из сгруппированного кадра данных в пандах, но получаю сообщение об ошибке.

Вот код:

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.

Есть идеи о том, что я делаю неправильно?

Попробуйте заменить эту строку table.groupby('TRACK_ID', sort = False) на table = table.groupby('TRACK_ID', sort = False). Ошибка, с которой вы столкнулись, связана с тем, что вы пытаетесь вызвать get_group для объекта DataFrame, но get_group на самом деле является методом объекта GroupBy, возвращаемого groupby.

Milos Stojanovic 26.05.2024 17:14
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
91
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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')

Спасибо за разъяснение. Являются ли единственные функции, которые являются функциями на месте, специально принимающими этот флаг?

zach dalton 26.05.2024 17:25

@zachdalton в основном да, но есть несколько исключений

Parman M. Alizadeh 26.05.2024 17:31

Ошибка, с которой вы столкнулись, связана с тем, что вы пытаетесь вызвать 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'). Также убедитесь, что передаваемое число или строка содержатся в столбце.

Другие вопросы по теме