如果您是来这里寻找有关如何合并a
DataFrame
和Series
索引的信息,请查看此答案。OP的最初意图是询问如何将系列元素作为列分配给另一个DataFrame。如果您想知道答案,请查看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
有人可以建议更好的语法/更快的方法吗?
我的尝试:
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
df
和s
,这个答案返回给我一个空的数据帧,没有结果要求的问题。我们不想匹配索引;我们想将s
值广播到的所有行df
。