Якщо ви прийшли сюди, шукаючи інформацію про те, як об’єднати 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
EDIT Перші дві опубліковані відповіді висвітлили проблему з моїм запитанням, тому, будь ласка, використовуйте наступне для побудови 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
.