当我使用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对象的结构,类似于R中的str()
?
答案 0 :(得分:1)
如果您正在尝试深入了解可以使用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's methods
IPython控制台的另一个好处是你可以快速查看
通过添加?
:
h_grouped.apply?
# Apply function and combine results
# together in an intelligent way.
如果你没有IPython或类似的控制台,你可以使用dir()
实现类似的功能,例如dir(h_grouped)
,虽然这也会列出
对象的私有方法通常没用,也不应该
经常使用。
答案 1 :(得分:0)
type(heart.groupby(['censors'])['age'])
type
会告诉你它是什么类型的对象。目前,您按维度进行分组,而不是告诉大熊猫如何处理age
。例如,如果你想要平均值,你可以这样做:
heart.groupby(['censors'])['age'].mean()
这将采用小组的年龄平均值,并返回一系列。
答案 2 :(得分:0)
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')