用不匹配的索引将两个系列合并为一个

时间:2019-01-05 01:24:47

标签: python pandas sorting series

我正在尝试将两个指标不匹配的系列合并为一个,我想知道什么是最佳实践。

我尝试了Combine_first,但是遇到了一个问题,在将序列[0,24,...]与序列[1,25,...]组合在一起时,应该得到带有索引[0,1,24]的序列,25,...],但我却得到了[0,12,24,36,...]

for row in all_rows:
    base_col = base_col.combine_first(row)

我只希望将具有互斥索引的两个系列合并为一个包含正确排序顺序的两个索引的单个系列。有点像拉链。

2 个答案:

答案 0 :(得分:2)

您可以使用pd.concat,然后使用sort_index

s1 = pd.Series([1, 2, 3, 4], index=[0, 24, 30, 40])
s2 = pd.Series([5, 6, 7, 8], index=[1, 25, 35, 38])

s = pd.concat([s1, s2]).sort_index()

print(s)

0     1
1     5
24    2
25    6
30    3
35    7
38    8
40    4
dtype: int64

答案 1 :(得分:2)

使用align

sum(s1.align(s2,fill_value=0))
0     1.0
1     5.0
24    2.0
25    6.0
30    3.0
35    7.0
38    8.0
40    4.0
dtype: float64