#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