Умножить строковые и целочисленные столбцы - PullRequest
2 голосов
/ 19 апреля 2020

У меня есть DataFrame с такой структурой [1], и я хочу умножить строковые и целочисленные столбцы.

+----------------------+------------+-------------------------+-----------+--+
| url                  | date       | word                    | mentioned |  |
|----------------------+------------+-------------------------+-----------+--+
| newspaperarticle.com | 2018-12-22 | [canada,house,micheal]  | [2,2,1]   |  |
| articleUSA.com       | 2018-12-23 | [new york,murder,angry] | [2,3,1]   |  |
+----------------------+------------+-------------------------+-----------+-

И я хочу умножить количество слов в имени столбца

+----------------------+------------+-------------------------+-------+---+--+
| url                  | date       | word                            |mentioned 
|----------------------+------------+-------------------------+-------+---+--+
| newspaperarticle.com | 2018-12-22 | [canada,canada,house,..]        |[2,2,1]     
| articleUSA.com       | 2018-12-23 | [new york,new york,murder,..]   |[2,3,1]   
+----------------------+------------+-------------------------+-------+---+--+

Я до сих пор умножал столбцы с помощью метода умножения, который не работал. Я также пробовал использовать циклы for с индексированием отдельных элементов и умножением их, но всегда go строка ошибки вне индекса.

1 Ответ

3 голосов
/ 19 апреля 2020

Вы можете explode и использовать series.repeat, совокупность в виде списка на уровне = 0:

s = [df[i].explode() for i in ['word','mentioned']]
df['word'] = s[0].repeat(s[1]).groupby(level=0).agg(list)

print(df)

                    url        date  \
0  newspaperarticle.com  2018-12-22   
1        articleUSA.com  2018-12-23   

                                                word  mentioned  
0            [canada, canada, house, house, micheal]  [2, 2, 1]  
1  [new york, new york, murder, murder, murder, a...  [2, 3, 1]  

Примечание: Предполагается, что столбцы word и mentioned представляют собой серии списков, а не строковые представления списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...