Python 查询不一致
我需要根据一个巨大的json文件,用python计算一个总和。重要的是计算是正确的。首先,我把它添加到熊猫身上,它的结构如下,但更大Python 查询不一致,python,pandas,data-analysis,Python,Pandas,Data Analysis,我需要根据一个巨大的json文件,用python计算一个总和。重要的是计算是正确的。首先,我把它添加到熊猫身上,它的结构如下,但更大 A B a 1 a 2 b 2 然后我要B列的和,其中A是A。为此,我使用pandas查询方法。问题是,有时它给出了正确的答案,3,有时只是0。我已经尝试了下面两种代码语法,我认为它们是等价的 my_sum=df[df[“A”]=“A”]。sum()[“B”] my_sum=df.query(“A=='A')['B'].sum() 它可能是异步运行的查询吗 如
A B
a 1
a 2
b 2
然后我要B列的和,其中A是A。为此,我使用pandas查询方法。问题是,有时它给出了正确的答案,3,有时只是0。我已经尝试了下面两种代码语法,我认为它们是等价的
my_sum=df[df[“A”]=“A”]。sum()[“B”]
my_sum=df.query(“A=='A')['B'].sum()
它可能是异步运行的查询吗
如何计算这个总数而不产生任何不一致
澄清:
我的总和有时等于3
但大多数情况下
我的和等于0
在pycharm调试器中运行时,通常为3。
列B由浮点数组成。注意差异
df.loc[df['A']='A',B'].sum()
和df[df['A']='A'].sum()['B']
,后者在所有列上求和并提取'B'
,这更昂贵。不要使用sum
或任何关键字作为变量。如果query
不一致,您将看到上述两种方法的my_sum
之间的差异。但你还没有明确说明情况是这样的:“它给出了正确的答案,3,有时只是0”。这表明您的数据有问题,而不是查询给出的结果与loc
不同。您可能有这样的前导/尾随空格,尽管您认为值是'a'
它实际上是'a'
,所以您对一个空数据帧求和,得到0。查看df.A.unique()
,因为您可能没有运行完全相同的代码。您可能无意中在某个地方修改了df
,但没有意识到。我可以运行该代码100万次,每次运行3次。你需要提供一个数据框,否则这只是猜测你犯了什么我们看不见的错误。唯一合理的解释是你正在修改数据框