Найдите N-е уникальное значение и вернитесь к датафрейму в Python - PullRequest
0 голосов
/ 01 июня 2018

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

df1

Out 1 Out 2 Out 3 Out 4 Out 5
3     1     2     4     5
100  50    200    300   200

Значения в df1 представляют N-е уникальные значения в df2 $ ID.Итак, 1-е уникальное значение - 999, 3-е уникальное значение - 777 и т. Д.

ID  ID2
999 888
101 801
777 666
777 666
555 100
555 100
111 100

Итак, для финального df3 мне нужно следующее: Примечание. Я обновил только первую строку для примера

Out 1 Out 2 Out 3 Out 4 Out 5
777   999   101   555   111
100  50    200    300   200

Я попытался использовать ответ @Wen, но он вызывает следующую ошибку: я не смог найти ответ на этот вопрос, кроме того, что это может быть ошибка индексации.Я также убедился, что я преобразовал соответствующие типы данных в int32 безрезультатно.Любая помощь будет высоко ценится -

ValueError: Row labels must have same size as column labels

1 Ответ

0 голосов
/ 01 июня 2018

Можно drop_duplicates и с помощью lookup

s=df2.drop_duplicates('ID').reset_index(drop=True)

df1.iloc[0,:]=s.lookup(df1.iloc[0,:]-1,['ID']*len(s))
df1
Out[222]: 
   Out1  Out2  Out3  Out4  Out5
0   777   999   101   555   111
1   100    50   200   300   200
...