我有以下pandas数据框:
DF1
Out 1 Out 2 Out 3 Out 4 Out 5
3 1 2 4 5
100 50 200 300 200
df1中的值表示df2 $ ID中的第N个唯一值。所以第一个唯一值是999,第三个唯一值是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
答案 0 :(得分:1)
您可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