熊猫:透过列表列进行调查?

时间:2016-01-25 02:22:22

标签: python pandas dataframe

我在Pandas中有这个DataFrame:

                      Age InterventionType PrimaryPurpose
0         [Adult, Senior]           Device    Treatment
1  [Child, Adult, Senior]             Drug    Basic Science
2         [Adult, Senior]             Drug    Treatment
3         [Adult, Senior]              NaN            NaN
4         [Adult, Senior]            Other            NaN

并希望以InterventionType为中心,以便获得:

Drug     Adult     2
         Senior    2
         Child     1
Device   Adult     1
         Senior    1
Other    Adult     1
         Senior    1

我如何做到这一点?另外,我的DataFrame有列表是不标准的吗?如果是这样,那么“取消列表”列表的好习惯是什么?

1 个答案:

答案 0 :(得分:0)

假设您的DataFrame名为df,则可以执行以下操作,

pd.DataFrame(
    df["Age"].values.tolist(),
    index=df["InterventionType"]
).stack().reset_index().drop("level_1", axis=1).groupby(["InterventionType", 0]).size()

将返回以下内容,

InterventionType  0
Device            Adult     1
                  Senior    1
Drug              Adult     2
                  Child     1
                  Senior    2
Other             Adult     1
                  Senior    1
dtype: int64

这是具有MultiIndex的熊猫系列。上面代码中的索引名称是“ InterventionType”和0,但是可以轻松更改。