我可能需要扩展我的问题...
我有一些相关矩阵可以使用(见下面的例子,但是想想几千个“Ref”列。
Ref_1 Ref_2
Base_1 0.021088 0.022260
Base_2 0.022539 0.023792
Base_3 0.026193 0.027648
Base_4 0.027209 0.028721
Base_5 0.000000 0.000000
Base_6 0.000000 0.000000
字符串
我用以下代码提取了Top Values:
data = []
for row_index, row in similarity_df.iterrows():
max_sim = row.max()
max_sim_col = row.idxmax()
data.append([row_index, max_sim_col, max_sim])
result_df = pd.DataFrame(data, columns=['Base', 'Ref', 'Score'])
型
一切正常,工作正常。
Base Ref Score
Base_1 Ref_2 0.022260
Base_2 Ref_2 0.023792
型
但是我需要提取每个Base的“Top10”Ref值,并使它们在一个框架或类似的东西中可读。
Base 1_Ref 1_Score 2_Ref 2_Score 3_Ref 3_Score etc...
Base_1 Ref_2 0.022260 Ref_1 0.021088 ...
Base_2 Ref_2 0.023792 Ref_1 0.022539 ...
型
我尝试了堆叠,但没有得到预期的结果。有什么想法吗?
1条答案
按热度按时间bnlyeluc1#
您可以
stack
和sort_values
,然后使用pivot
和groupby.cumcount
进行整形:字符串
.groupby(level=0).head(N)
行。*输出量:
型