Python 如何为pandas.DataFrame中的每一行进行清晰的排序 我所拥有的
用户-用户相似度矩阵,其中某些行具有重复值和Python 如何为pandas.DataFrame中的每一行进行清晰的排序 我所拥有的,python,pandas,data-mining,Python,Pandas,Data Mining,用户-用户相似度矩阵,其中某些行具有重复值和NaN userId 316 320 359 370 910 userId 316 1.0 0.500000 0.500000 0.500000 NaN 320 0.5 1.000000 0.242837 0.019035 0.031737 359 0.5 0.2
NaN
userId 316 320 359 370 910
userId
316 1.0 0.500000 0.500000 0.500000 NaN
320 0.5 1.000000 0.242837 0.019035 0.031737
359 0.5 0.242837 1.000000 0.357620 0.175914
370 0.5 0.019035 0.357620 1.000000 0.317371
910 NaN 0.031737 0.175914 0.317371 1.000000
我想要什么
我想对每一行的相似性进行清楚的排序。像这样:
userId 316 320 359 370 910
userId
316 1 2 3 4 NaN
320 2 1 3 5 1
359 2 4 1 3 5
370 2 5 3 1 4
910 NaN 4 3 2 1
相同值之间的排名并不重要。但它必须是一个独特的值。和NaN
必须保留
我累了什么
我尝试了df.rank(升序=False,轴=1)
(),但没有给我一个不同的rank值。我还尝试了
scipy.stats.rankdata
(),但它无法保持NaN
使用rank
和method='first'
df.rank(1, ascending=False, method='first')
316 320 359 370 910
316 1.0 2.0 3.0 4.0 NaN
320 2.0 1.0 3.0 5.0 4.0
359 2.0 4.0 1.0 3.0 5.0
370 2.0 5.0 3.0 1.0 4.0
910 NaN 4.0 3.0 2.0 1.0
我以为我接受了。但我发现我只是点击了向上投票按钮。很抱歉。