Если вы пришли сюда в поисках информации о том, как объединить 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
.