#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
Комментариев нет:
Отправить комментарий