gpt4 book ai didi

python - Pandas 整数列的数据透视表返回小数值

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:08 26 4
gpt4 key购买 nike

我正在使用 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 将枢轴值计算为给定时区中所有观测值的比率。但我仍然不确定如何解决该问题或导致该问题的原因。

最佳答案

由于 pandas 基于 numpy,因此您可能始终会得到浮点结果而不是整数。

pivot_table function接受一个参数aggfunc,默认为numpy.mean。如果你将其更改为 numpy.sum 你应该得到你想要的。

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

关于python - Pandas 整数列的数据透视表返回小数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com