Когда я использую R, я могу использовать str()
для проверки объектов, которые являются списком вещей в большинстве случаев.
Недавно я перешел на Python для статистики и не знаю, как проверить объекты, с которыми я сталкиваюсь. Например:
import statsmodels.api as sm
heart = sm.datasets.heart.load_pandas().data
heart.groupby(['censors'])['age']
Я хочу выяснить, что это за объект heart.groupby(['censors'])
, который позволяет мне добавить ['age']
в конец. Однако print heart.groupby(['censors'])
сообщает мне тип объекта, а не его структуру и то, что я могу с ним сделать.
Итак, как мне понять структуру объекта numpy/ pandas, аналогичного str()
в R?
Если вы пытаетесь получить представление о том, что вы можете сделать с объектом Python, вы можете проверить его с помощью усиленной консоли Python, такой как IPython. В сеансе IPython сначала поместите объект, который вы хотите посмотреть, в переменную:
import statsmodels.api as sm
heart = sm.datasets.heart.load_pandas().data
h_grouped = heart.groupby(['censors'])
Затем введите имя переменной и дважды нажмите Tab, чтобы вызвать список методов объекта:
In [5]: h_grouped.<Tab><Tab>
# Shows the object methods
Еще одно преимущество консоли IPython - вы можете быстро проверить
help для любого индивидуального метода, добавив ?
:
h_grouped.apply?
# Apply function and combine results
# together in an intelligent way.
Если у вас нет IPython или аналогичной консоли, вы можете добиться чего-то подобного, используя dir()
, например. dir(h_grouped)
, хотя это также будет указано
частные методы объекта, которые обычно не полезны и не должны быть
прикосновен к регулярному использованию.
groupby
Я думаю, что красная селедка - "возраст" - это просто имя столбца:
import statsmodels.api as sm
heart = sm.datasets.heart.load_pandas().data
heart
# survival censors age
# 0 15 1 54.3
# ...
heart.keys()
# Index([u'survival', u'censors', u'age'], dtype='object')
type(heart.groupby(['censors'])['age'])
type
расскажет вам, что это за объект. На данный момент вы группируетесь по размеру и не говорите pandas, что делать с age
. Если вы хотите получить среднее значение, например, вы можете:
heart.groupby(['censors'])['age'].mean()
Это означало бы возраст группы и возвращал серию.
mean()
!). Допустим, я хочу найти, если есть метод, связанный с «взятием среднего», как бы я это сделал?h_grouped.apply??
показывает код, если написан на Python.