Pandas评估DataFrame中多个值的计数

时间:2014-12-17 10:38:33

标签: python pandas count group-by dataframe

我有一个像这样的Pandas DataFrame:

    Language  Id  GridCode
0         es   1         1
1         en   2        11
2         es   3         2
3         it   4         6
4         it   5        10
5         pl   6        10
6         es   7         9
7         fr   8        11
8         es   9        11
9         en  10        12
10        es  11         1

基本上," Id"与" GridCode"相关联。以及语言" (一个独特的" Id"可以分配给一个且只有一个" Gridcode"但显然,GridCode可以与更多" Id" s相关联。我试图让一个新的DataFrame计算出" Id"的频率。在特定的语言" per" Gridcode",包含以下列:

GridCount    Count_Id_es    Count_Id_en    ...

等等。 到目前为止,我为循环创建了一组语言:

languages = set(df['Language'])

然后我尝试使用这样的groupby操作:

g = df.groupby(['GridCode','Id','Language']).size()

返回:

GridCode  Id  Language
1         1   es          1
          11  es          1
2         3   es          1
6         4   it          1
9         7   es          1
10        5   it          1
          6   pl          1
11        2   en          1
          8   fr          1
          9   es          1
12        10  en          1

现在的问题是再次计算特定语言中" Id"的频率,并将信息存储在新的DataFrame中,如下所示:

Gridcode    Count_Id_es    Count_Id_it     Count_Id_pl      Count_Id_fr     Count_Id_en
1           2              0               0                0               0
2           1              0               0                0               0
6           0              1               0                0               0
9           1              0               0                0               0
10          0              1               1                0               0
11          1              0               0                1               1
12          0              0               0                0               1

任何帮助都将受到高度赞赏,谢谢!

1 个答案:

答案 0 :(得分:0)

你也可以使用getdummy

pd.get_dummies(df.Language)