объединение двух фреймов данных и расширение содержимого одного из них

#python #pandas

#python #pandas

Вопрос:

 df1 = pd.DataFrame([1,2,3],columns=['x'])
df2 = pd.DataFrame([[100,200,300]],columns=['y','w','z'])
  

Как я могу объединить оба фрейма данных, расширив их, df2 чтобы они соответствовали строкам df1 ?

Это то, чего я пытаюсь достичь

 x   y   w   z  
1  100 200 300
2  100 200 300
3  100 200 300
  

Комментарии:

1. попробуйте df1.join(df2).ffill()

Ответ №1:

Все просто, как вы видели assign

 df1.assign(**df2.iloc[0])
Out[413]: 
   x    y    w    z
0  1  100  200  300
1  2  100  200  300
2  3  100  200  300
  

Комментарии:

1. черт возьми! Распаковка pd.Series. Приятно! 1

Ответ №2:

Вы можете использовать join, поскольку упоминания @Vaishali о вашем индексе ваших фреймов данных являются индексом диапазона по умолчанию. Где индекс вашего второго фрейма данных, df2, совпадает с первым индексом df1. Однако создание временного ключа и выполнение слияния для создания декартова произведения немного более надежны.

 df1.assign(key=1).merge(df2.assign(key=1)).drop('key', axis=1)
  

Вывод:

    x    y    w    z
0  1  100  200  300
1  2  100  200  300
2  3  100  200  300