我尝试将两个不同的索引序列组合在一起(相同的行数)。我试过了pd.concat((s1, s2), axis=1)
。
例如,s1是:
index | s1
----- | -----
0 | 1.5
----- | -----
1 | 2
和s2是:
index | s2
----- | -----
a | 1
----- | -----
b | 2
但我明白了:
index | s1 | s2
----- | --- | ---
0 | 1.5 | NaN
----- | --- | ---
1 | 2 | NaN
----- | --- | ---
a | NaN | 1
----- | --- | ---
b | NaN | 2
我想要的是:
index | s1 | s2
----- | --- | ---
a | 1.5 | 1
----- | --- | ---
b | 2 | 2
那就是保留series2的索引。 我怎么能得到这个?非常感谢!
答案 0 :(得分:4)
首先按s1
索引设置s2
的索引:
s1.index = s2.index
df = pd.concat([s1, s2], axis=1)
print (df)
s1 s2
a 1.5 1
b 2.0 2
答案 1 :(得分:2)
您可以通过s2索引设置s1的索引,然后将它们连接起来
s1 = pd.DataFrame({'s1':[1.5,2]},index=[0,1])
s2 = pd.DataFrame({'s2':[1,2]},index=['a','b'])
pd.concat([s2,s1.set_index(s2.index)],axis=1)
输出:
s2 s1 a 1 1.5 b 2 2.0
或
pd.concat([s1.set_index(s2.index),s2],axis=1)
s1 s2 a 1.5 1 b 2.0 2
答案 2 :(得分:2)
s2.insert(0, 's1', s1.s1.values)
s2
s1 s2
a 1.5 1
b 2.0 2
选项2
重建
pd.DataFrame(dict(s1=s1.s1.values, s2=s2.s2.values), s2.index)
s1 s2
a 1.5 1
b 2.0 2
s1.set_index(s2.index).join(s2)
s1 s2
a 1.5 1
b 2.0 2