熊猫pivot_table aggfunc错误的值

时间:2020-11-11 01:50:05

标签: pandas pivot-table

enter image description here

df_6m_sum = df_6m.pivot_table(index='ACC_NBR', columns='class', values='TRANS_CHARGE', aggfunc=np.sum)

df_6m_sum.head(10)

class   bus enter busi  campus  online  offline drink   buy change  finance
ACC_NBR                                     
1300xxx0265 NaN NaN NaN NaN NaN NaN NaN 11700.0 NaN NaN
1300xxx0272 NaN NaN NaN NaN NaN NaN NaN 13500.0 NaN NaN
1300xxx0659 NaN NaN NaN NaN NaN NaN NaN 152300.0    NaN NaN
1300xxx0928 NaN NaN NaN NaN NaN NaN NaN 140000.0    NaN NaN
1300xxx1117 900.0   NaN NaN NaN 5500.0  2870.0  NaN 18020.0 10003.0 NaN
1300xxx1170 NaN NaN NaN NaN NaN NaN NaN 143000.0    NaN NaN
1300xxx1683 NaN NaN NaN NaN NaN NaN NaN 5200.0  NaN NaN
1300xxx1916 NaN NaN NaN NaN NaN NaN NaN NaN 10983.0 NaN
1300xxx2212 NaN NaN NaN NaN NaN NaN NaN 207030.0    NaN NaN
1300xxx2939 1800.0  NaN 5000.0  NaN NaN NaN NaN NaN NaN NaN

df_6m_sum.iloc[9]
class
交通      1800.0
娱乐         NaN
政企      5000.0
校园         NaN
线上缴费       NaN
线上购物       NaN
线上餐饮       NaN
线下购物       NaN
账户变动       NaN
金融         NaN
Name: 1300xxx2939, dtype: float64

df_6m_sum.loc['1300xxx2939']
class
交通      1400.0
娱乐         NaN
政企      7000.0
校园         NaN
线上缴费       NaN
线上购物       NaN
线上餐饮       NaN
线下购物       NaN
账户变动       NaN
金融         NaN
Name: 1300xxx2939, dtype: float64

我使用pandasivot_table来求和,但是结果是错误的(正确的值是1400,7000),为什么我使用不同的select方法获得不同的值,请帮助我,谢谢

1 个答案:

答案 0 :(得分:0)

问题已解决,1300xxx2939具有两种类型的数据:str和int,都在acc_nbr列中,因此具有两种不同的值