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

У меня есть следующий фрейм данных

import pandas as pd
df = pd.DataFrame({'var1':['A','B','C','C'],
                  'var2':[1,2,3,3],
                  'var3':['x','y','y','z']})

Что я хотел бы сделать, это получить уникальные значения многих столбцов, а также рядом с ними имя столбца, для которого уникальное значение принадлежит.

В идеале итоговый фрейм данных должен выглядеть следующим образом:

dff = pd.DataFrame({'col': ['var1','var1','var1', 'var2','var2','var2','var3','var3','var3'],
                  'value': ['A','B','C', 1,2,3,'x','y','z']})

Я могу получить уникальные значения, используя pd.unique(df[['var1','var2','var3']].values.ravel('K'))

, но не знаю аккуратного способа добавленияимя столбца рядом с ними

1 Ответ

2 голосов
/ 23 октября 2019

Это просто с melt :

pd.melt(df).drop_duplicates()

   variable value
0      var1     A
1      var1     B
2      var1     C
4      var2     1
5      var2     2
6      var2     3
8      var3     x
9      var3     y
11     var3     z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...