#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)