【发布时间】:2015-02-15 21:14:25
【问题描述】:
我有一个像这样的 Pandas DataFrame df:
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”和“Language”相关联(唯一的“Id”可以分配给一个且只有一个“Gridcode”,但显然,GridCode 可以关联到更多“身份”)。我正在尝试获取一个新的 DataFrame,计算每个“Gridcode”中特定“语言”中“Id”的频率,其中包含以下列:
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
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
抱歉刚刚找到答案here。
标签: python pandas count group-by dataframe