在python数据透视表上创建过滤器

时间:2018-07-16 13:29:18

标签: python pandas

我正在尝试在数据透视表上放置一个过滤器,因此,我只想在C列为“ UGX”时在F列上聚合值。

我是在下面的代码上完成的:

table = pd.pivot_table(df,index=["B"], values=["F"],
                       columns=[df.D=="UGX"], aggfunc=np.sum)

我得到以下结果:

                         F              
D             False         True 
B                                
0.0    0.000000e+00           NaN
1.0    5.803969e+07  3.313538e+09
2.0    4.293864e+11  6.584239e+11
4.0    4.849234e+10  1.457356e+11
5.0    6.609481e+10  2.478473e+11
6.0    0.000000e+00  0.000000e+00
10.0   1.108451e+10  1.288109e+10
13.0  -3.000000e+10 -3.000000e+10
14.0   7.115493e+08  2.473186e+09
15.0            NaN  0.000000e+00
17.0   1.969734e+07           NaN
18.0   1.477040e+11  0.000000e+00

我只想查看“ True”下的值

请协助。 谢谢,

1 个答案:

答案 0 :(得分:1)

不是将完整df作为pd.pivot_table中的第一个参数传递,而是将df仅过滤到列C为'UGX'的位置,并将其作为pivot_table中的第一个参数传递。让我们尝试一下:

table = pd.pivot_table(df[df.D == 'UGX'], values=["F"], columns=[df.D=="UGX"], aggfunc=np.sum)