经过一些分组操作后,我得到了以下结果数据框:

GridCode  User_ID    DLang
3         224591119  es
                     ja
                     zh
4         224591119  es
6         146381773  en
9         17925282   ca
          63102456   en
          106225728  ca
          229125779  ca


我想为每个GridCode计算每个User_ID中的DLang个数,建立新的列,例如'User_ID_(DLang)'。结果数据帧将显示为:

GridCode User_ID_es User_ID_ja User_ID_zh ...
3 1 1 1 ...
4 1 0 0 ...
6 0 0 0 ...


到目前为止,我使用unstuck方法获得了一些结果,但是知道我还不知道如何计算User_ID及其频率。

最佳答案

我不确定我了解您要做什么,也许是这样?

df.groupby(['GridCode','DLang']).count().unstack().fillna(0)

         User_ID
DLang         ca en es ja zh
GridCode
3              0  0  1  1  1
4              0  0  1  0  0
6              0  1  0  0  0
9              3  1  0  0  0

09-19 00:33