1,下标相同的才有值版:
s = An+Bn
s[s.index=='U01070']
len(s) == len(Bn) + len(An) - len(Bn[Bn.index.isin(An.index)])# 两者共同的下标。
…
省略了输出值,其中 True表示相同下标,它们在相加后展示出来且值也相加了,但下标不同的值因缺少相加对象,故相加后值为NaN。
2,下标相同的才相加,否则就不变**(推荐)**:
baN = Bn[Bn.index.isin(An.index)]
baN.values
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3],
dtype=int64)
abN = An[An.index.isin(Bn.index)]
abN.values
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
dtype=int64)
s = An.append(Bn)
ss = s.groupby(s.index).sum()
ss[ss.index.isin(
abN.index)] # 可看见把下标相同的值作完美相加。不同的也没变化。
AP99140516119 2
AP99160116222 2
AP99171109977 2
KA27201106369 2
KA28190817118 2
KA59190824114 2
KA67211114777 2
KA86171014111 2
KA86191012111 2
Nd03211112307 2
RO99211118112 2
Rd68191031777 2
Rd68211613229 2
Rd78201028111 2
Rd78210819111 2
Rd85171104255 2
RdS56210924111 2
RdX39201216112 2
d01070218047 4
dtype: int64