Сохранить в DataFrame уникальные значения для каждого столбца - PullRequest
1 голос
/ 16 января 2020

Если у меня есть данные (df), такие как:

X1 X2 X3 
A  A  C
B  A  C
C  B  C

При следующей функции:

for col in df:
    print(pd.unique(df[col]))

Возвращает что-то вроде:

[A,B,C]
[A,B]
[C]

¿Как я могу сохранить возврат функции в DataFrame ?, Я хотел бы видеть это так:

X1 X2 X3 
A  A  C
B  B  
C    

Спасибо вам!

Ответы [ 2 ]

8 голосов
/ 16 января 2020

Используйте лямбда-функцию с конструктором Series и затем отмените пропущенные значения:

df1 = df.apply(lambda x: pd.Series(pd.unique(x))).fillna('')

Или используйте Series.drop_duplicates:

df1 = df.apply(lambda x: x.drop_duplicates().reset_index(drop=True)).fillna('')

print (df1)
  X1 X2 X3
0  A  A  C
1  B  B   
2  C      
0 голосов
/ 16 января 2020

Вы можете сделать что-то вроде:

raw_data = {}
for counter, col in enumerate(df):
    raw_data['X%s' %counter] = pd.unique(df[col])
df = pd.DataFrame(raw_data, columns = list(raw_data.keys()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...