Добавление ряда из второго фрейма данных pandas в фрейм данных, индексированный по времени

#python #pandas

#python #pandas

Вопрос:

У меня есть два фрейма данных с индексом даты и времени

 2020-12-07  1622
2020-12-07  912
2020-12-07  503
 
 2020-03-09  1178
2020-03-09  640
2020-03-09  382
 

Они всегда будут иметь одинаковую длину (одна неделя)… Мне нужно добавить столбец df1 в df2. Я пробовал несколько вещей, но наиболее многообещающий дает мне

 df1 = df1.assign(bline=pd.Series(df2['num'].values))
 

Но это дает мне

 2020-12-07  1622    NaN
2020-12-07   912    NaN
2020-12-07   503    NaN
 

Если я просто делаю: df['num2'] = df2['num'].values , это дает мне SettingWithCopyWarning … каков правильный способ сделать это?

Ответ №1:

df['num2'] = df2['num'].values это правильный путь. Это выдает предупреждение, потому что ваш df фрагмент другого большего фрейма данных.

С другой стороны

 df1 = df1.assign(bline=pd.Series(df2['num'].values))
 

не выдает предупреждения, потому assign что работает и возвращает копию фрагмента. Но тогда индекс pd.Series(df2['num'].values) отличается от df1 индекса, поэтому вы получаете все NaN . Попробуйте:

 df1 = df1.assign(bline=df2['num'].values)