Как развернуть кадр данных Pandas так, чтобы уникальные значения в нескольких столбцах стали новыми столбцами? - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть файл данных pandas в виде:

df

    col_1      col_2      col_3      col_4
ID
1     A          B          C          A
2     B          D
3     A          C          B

df = pd.DataFrame({'col_1':['A','B','A'], 'col_2':['B','D','C'], 'col_3':['C',np.NaN,'B'], 'col_4':['A', np.NaN, np.NaN]}, index=[1,2,3])

Обратите внимание, что значения, повторяемые по столбцам, не случайны - они относятся кте же объекты (например, A в col_1 - это то же самое, что и A в col_4).Я пытаюсь изменить значения этого фрейма данных, чтобы эти уникальные значения стали новыми столбцами.Например, df станет:

new_df

      A      B      C      D
ID
1     2      1      1      0
2     1      0      0      1
3     1      1      1      0

Новые значения представляют счетчики.Я пытался pd.get_dummies () , но это не дает мне то, что я хочу.Какой самый интуитивный способ добиться этого?

1 Ответ

0 голосов
/ 24 декабря 2018

IIUC с использованием stack с str.get_dummies

df.stack().loc[lambda x : x!=''].str.get_dummies().sum(level=0)
    A  B  C  D
ID            
1   2  1  1  0
2   0  1  0  1
3   1  1  1  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...