pandas.Series .比较 #

系列。比较( other , align_axis = 1 , keep_shape = False , keep_equal = False , result_names = ('self', 'other') ) [来源] #

与其他系列进行比较并显示差异。

参数
其他系列

要比较的对象。

align_axis {0 或 'index', 1 或 'columns'}, 默认 1

确定将比较对齐到哪个轴。

  • 0,或“索引”产生的差异垂直堆叠

    从自己和他人交替绘制行。

  • 1,或“列”产生的差异水平对齐

    列从自己和他人交替绘制。

keep_shape布尔值,默认 False

如果为 true,则保留所有行和列。否则,仅保留具有不同值的那些。

keep_equal bool, 默认 False

如果为 true,则结果保持相等的值。否则,相等的值将显示为 NaN。

result_names元组,默认 ('self', 'other')

在比较中设置数据帧名称。

1.5.0 版本中的新增内容。

返回
系列或数据框

如果 axis 为 0 或“index”,则结果将是一个系列。生成的索引将是一个 MultiIndex,其中“self”和“other”交替堆叠在内部级别。

如果 axis 为 1 或“列”,则结果将是一个 DataFrame。它将有两列,即“自我”和“其他”。

也可以看看

DataFrame.compare

与另一个 DataFrame 进行比较并显示差异。

笔记

匹配 NaN 不会出现差异。

例子

>>> s1 = pd.Series(["a", "b", "c", "d", "e"])
>>> s2 = pd.Series(["a", "a", "c", "b", "e"])

对齐列上的差异

>>> s1.compare(s2)
  self other
1    b     a
3    d     b

将差异叠加到指数上

>>> s1.compare(s2, align_axis=0)
1  self     b
   other    a
3  self     d
   other    b
dtype: object

保留所有原始行

>>> s1.compare(s2, keep_shape=True)
  self other
0  NaN   NaN
1    b     a
2  NaN   NaN
3    d     b
4  NaN   NaN

保留所有原始行以及所有原始值

>>> s1.compare(s2, keep_shape=True, keep_equal=True)
  self other
0    a     a
1    b     a
2    c     c
3    d     b
4    e     e