#python #pandas #dataframe
Вопрос:
В настоящее время я пытаюсь объединить списки из двух разных фреймов данных, используя pandas. Я пытаюсь, чтобы каждая ячейка в df1 объединила все ячейки в df2. Итак, в качестве примера у меня есть следующие два кадра данных:
>>> df1
0 [This, is, a, sentence]
1 [this, is, another, sentence]
>>> df2
0 [this, is, also, a, sentence]
1 [this, too, is, a, sentence]
2 [this, is, very, different]
3 [another, sentence, is, this]
4 [not, much, of, anything]
Я пытаюсь объединить две ячейки в df1 с ячейками в df2, чтобы получить следующий результат:
>>> df_merged
0 [this, is, also, a, sentence, This, is, a, sentence]
1 [this, too, is, a, sentence, This, is, a, sentence]
2 [this, is, very, different, This, is, a, sentence]
3 [another, sentence, is, this, This, is, a, sentence]
4 [not, much, of, anything, This, is, a, sentence]
>>> df2_merged
0 [this, is, also, a, sentence, This, is, another, sentence]
1 [this, too, is, a, sentence, This, is, another, sentence]
2 [this, is, very, different, This, is, another, sentence]
3 [another, sentence, is, this, This, is, another, sentence]
4 [not, much, of, anything, This, is, another, sentence]
Есть какие-нибудь идеи о том, как я мог бы этого добиться? Их не обязательно разбивать на разные фреймы данных, они могут находиться в разных столбцах одного и того же фрейма данных и т. Д
Ответ №1:
Cross
соедините оба фрейма данных, затем объедините два списка:
df1.join(df2, how='cross', lsuffix='1', rsuffix='2').apply(lambda x: x['text2'] x['text1'], axis=1)
выход:
0 [this, is, also, a, sentence, This, is, a, sentence]
1 [this, too, is, a, sentence, This, is, a, sentence]
2 [this, is, very, different, This, is, a, sentence]
3 [another, sentence, is, this, This, is, a, sentence]
4 [not, much, of, anything, This, is, a, sentence]
5 [this, is, also, a, sentence, this, is, another, sentence]
6 [this, too, is, a, sentence, this, is, another, sentence]
7 [this, is, very, different, this, is, another, sentence]
8 [another, sentence, is, this, this, is, another, sentence]
9 [not, much, of, anything, this, is, another, sentence]
dtype: object
Данные, используемые для приведенного выше кода (df1 и df2 имеют столбец text
):
>>> df1
text
0 [This, is, a, sentence]
1 [this, is, another, sentence]
>>> df2
text
0 [this, is, also, a, sentence]
1 [this, too, is, a, sentence]
2 [this, is, very, different]
3 [another, sentence, is, this]
4 [not, much, of, anything]