最佳答案
如果你来这里寻找关于 < em > 如何 merge a
DataFrame
andSeries
on the index, please look at this 回答OP 的初衷是询问 < em > 如何分配系列元素 as columns to another DataFrame. If you are interested in knowing the 回答这个问题,看看 EdChum 的 接受的答案。
我能想到的最好的办法就是
df = pd.DataFrame({'a':[1, 2], 'b':[3, 4]}) # see EDIT below
s = pd.Series({'s1':5, 's2':6})
for name in s.index:
df[name] = s[name]
a b s1 s2
0 1 3 5 6
1 2 4 5 6
Can anybody suggest better syntax / faster method?
我的尝试:
df.merge(s)
AttributeError: 'Series' object has no attribute 'columns'
还有
df.join(s)
ValueError: Other Series must have a name
编辑 前两个回答突出了我的问题中的一个问题,所以请使用以下方法构造 df
:
df = pd.DataFrame({'a':[np.nan, 2, 3], 'b':[4, 5, 6]}, index=[3, 5, 6])
最终的结果
a b s1 s2
3 NaN 4 5 6
5 2 5 5 6
6 3 6 5 6