我有一个像这样的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
任何帮助都将受到高度赞赏,谢谢!
答案 0 :(得分:0)
你也可以使用getdummy
pd.get_dummies(df.Language)