整数列的Pandas Pivot表返回十进制值

时间:2017-09-18 20:09:08

标签: python pandas dataframe pivot-table

我正在使用pandas在python中试验数据透视表,如果一个单词出现在文本中,我有一个包含1的列,如果没有出现单词,则为0。因此,我期待值列中的整数值,但我得到的输出如下:

Athens                       0.085366
Atlantic Time (Canada)       0.545455
Baghdad                      0.457746
Baku                         0.500000
Beijing                      0.000000
Belgrade                     0.000000
Berlin                       0.000000
Brasilia                     0.666667
Brisbane                     0.000000

我认为它可能会采用一些比率而不是总数,但由于我没有传递除数据框和索引以及值之外的任何参数,我不知道为什么会这样做。

我有一个数据框,其中包含根据推文的JSON代码创建的列

tweets['timezone'] = list(map(lambda tweet: (tweet['user']['time_zone'] if 'time_zone' != None else None ),tweets_data))
tweets['ktheer'] = tweets['text'].apply(lambda tweet: word_in_text('كثير', tweet),tweets_data)

这是我用于数据透视表的两列,这是制作表格的代码:

words_pivot = pd.pivot_table(tweets, index = ['timezone'], values = ['ktheer'])

对于可能出现的问题的任何想法都非常感谢。我不知道为什么我不会得到整数。

更新:经过一些游戏后,我很确定问题在于python计算枢轴值作为给定时区内所有观测值的比率。但我仍然不确定如何解决问题或导致问题的原因。

1 个答案:

答案 0 :(得分:1)

由于'a基于pandas,因此您可能总是得到浮点结果而不是整数。

pivot_table function采用参数numpy,默认为aggfunc。如果您将其更改为numpy.mean,您应该得到您想要的内容。

numpy.sum