Как объединить ячейки со списком типов данных из разных фреймов данных в Панд Python?

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