Создать новые строки из столбцов с несколькими элементами в Python

Какую кодировку символов вы используете? Некоторые наборы символов (например, UTF-16 и т. Д.) Используют более одного байта на символ.

0
задан Ameer B. 18 March 2019 в 16:08
поделиться

2 ответа

merge с get_dummies

dfA.merge(dfB).set_index('customer').tags.str.get_dummies(', ').sum(level=0,axis=0)
Out[549]: 
          chocolate  filled  glazed  sprinkles
customer                                      
A                 3       1       0          2
C                 1       0       2          1
B                 2       2       0          0
0
ответ дан Wen-Ben 18 March 2019 в 16:08
поделиться

IIUC возможен с merge, split, melt и concat:

dfB = dfB.merge(dfA, on='product')
dfB = pd.concat([dfB.iloc[:,:-1], dfB.tags.str.split(',', expand=True)], axis=1)
dfB = dfB.melt(id_vars=['customer', 'product']).drop(columns = ['product', 'variable'])
dfB = pd.concat([dfB.customer, pd.get_dummies(dfB['value'])], axis=1)
dfB

Выход:

   customer   filled sprinkles chocolate  glazed
0         A        0        0        1        0
1         C        0        0        1        0
2         A        0        0        1        0
3         A        0        0        1        0
4         B        0        0        1        0
5         B        0        0        1        0
6         C        0        0        0        1
7         C        0        0        0        1
8         A        0        1        0        0
9         C        0        1        0        0
10        A        0        1        0        0
11        A        1        0        0        0
12        B        1        0        0        0
13        B        1        0        0        0
0
ответ дан Josh Friedlander 18 March 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: