gpt4 book ai didi

python - pandas系列忽略索引的相等性

转载 作者:行者123 更新时间:2023-12-01 09:22:48 24 4
gpt4 key购买 nike

索引在系列相等性中发挥着作用,我想运行一个检查来忽略索引,只考虑值,同时处理不同长度的情况。

pandas.Series.equals 处理不同长度的部分,但也施加索引相等约束。为了解决这个问题,我正在执行以下操作...

def isEqualValues( s1 , s2 ) :
return s1.reset_index(drop=True).equals( s2.reset_index(drop=True) )

到目前为止效果很好,

>>> import pandas
>>> s_a = pandas.Series([1,2,3])
>>> s_b = pandas.Series([1,2,3], index=[10,11,12] )
>>> s_c = pandas.Series([1,2])
>>>
>>> print( isEqualValues( s_a , s_b ) )
True
>>> print( s_a.equals( s_b ) )
False
>>> print( isEqualValues( s_a , s_c ) )
False
>>> print( s_a.equals( s_c ) )
False

是否有任何官方方法可以在 pandas 本身中执行此操作,而无需重置索引?

最佳答案

如果您正在处理数字数据并想要处理 NaN,请使用 np.allclose:

np.allclose(s_a, s_b, equal_nan=True)
  • 适用于整数和 float
  • 优雅地处理 float 错误
  • 精细控制 NaN 的处理方式

如果所比较的系列的长度不相同,则会引发 ValueError。为了处理这个问题,添加一个预长度检查:

len(s_a) == len(s_b) and np.allclose(s_a, s_b, equal_nan=True)

关于python - pandas系列忽略索引的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50689552/

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