#python #pandas #dataframe #mask
Пусть дан датафрейм: 1) 2 3 3 2 2) 4 5 5 5 3) 0 9 8 1 Как получить такое: 1) 1 2 2 1 2) 1 2 2 2 3) 1 2 3 4 То есть, мы смотрим порядок и уникальность значения в строке и заменяем по этому принципу эти значения, как бы маскируя их. Обработка у нас построчная и независимая.
Ответы
Ответ 1
Примените pd.factorize() к транспонированому DataFrame: In [30]: df Out[30]: a b c d 0 2 3 3 2 1 4 5 5 5 2 0 9 8 1 In [31]: df.T.apply(lambda x: pd.factorize(x)[0]+1).T Out[31]: a b c d 0 1 2 2 1 1 1 2 2 2 2 1 2 3 4
Комментариев нет:
Отправить комментарий