将排名最高的值传递给列表的函数
Function to pass highest ranked values to a list
Python 的新手,正在寻找构建函数的帮助 - 我已经搜索了其他答案,但没有找到我正在寻找的确切内容(如果这是重复查询,请根据需要重定向) .
我正在使用 Pandas,下面有一个包含两列排名的数据框:
Example DataFrame
我有这个数据帧的 3 个副本,格式相同但值不同。每个包含两个排名列(col1 中的 rank_ctb 和 col2 中的 rank_score)。
我想构建一个函数,我可以在其中传递数据框的名称,并将第 1 列中排名最高的 5 个 ID(索引列)添加到一个列表中,然后第 2 列中的 5 个最高排名,到另一个列表。
所以在这个数据示例中,col 1 已经在排名中排序,列表将包含值:
#5 最高排名 RANK_CTB
List_One = [Test_Data_1, Test_Data_9, Test_Data_19, Test_Data_5, Test_Data_8]
#5 来自 RANK_SCORE 的最高排名(此列未排序,在我的示例数据中看不到第 3 和第 5 名)
List_Two = [Test_Data_8, Test_Data_22, some_other_ID, Test_Data_26, some_other_ID2]
我最初的想法是我需要使用 for 循环并设置两个空列表,但从那里我完全卡住了。
我正在为您编写一个测试函数,我认为这可以完成工作。
根据需要稍微修改一下
def test(df):
list_one = []
list_two = []
col1_highest = sorted(list(df.RANK_CTB), reverse = True)[:5]
col2_highest = sorted(list(df.RANK_SCORE), reverse = True)[:5]
for i range(len(col1_highest)):
list_one.append(df.loc[df.RANK_CTB == col1_highest[i], 'ID'])
list_two.append(df.loc[df.RANK_SCORE == col2_highest[i], 'ID'])
return list_one, list_two
list_one, list_two = 测试(name_of_df)
Python 的新手,正在寻找构建函数的帮助 - 我已经搜索了其他答案,但没有找到我正在寻找的确切内容(如果这是重复查询,请根据需要重定向) .
我正在使用 Pandas,下面有一个包含两列排名的数据框:
Example DataFrame
我有这个数据帧的 3 个副本,格式相同但值不同。每个包含两个排名列(col1 中的 rank_ctb 和 col2 中的 rank_score)。
我想构建一个函数,我可以在其中传递数据框的名称,并将第 1 列中排名最高的 5 个 ID(索引列)添加到一个列表中,然后第 2 列中的 5 个最高排名,到另一个列表。
所以在这个数据示例中,col 1 已经在排名中排序,列表将包含值:
#5 最高排名 RANK_CTB
List_One = [Test_Data_1, Test_Data_9, Test_Data_19, Test_Data_5, Test_Data_8]
#5 来自 RANK_SCORE 的最高排名(此列未排序,在我的示例数据中看不到第 3 和第 5 名)
List_Two = [Test_Data_8, Test_Data_22, some_other_ID, Test_Data_26, some_other_ID2]
我最初的想法是我需要使用 for 循环并设置两个空列表,但从那里我完全卡住了。
我正在为您编写一个测试函数,我认为这可以完成工作。 根据需要稍微修改一下
def test(df):
list_one = []
list_two = []
col1_highest = sorted(list(df.RANK_CTB), reverse = True)[:5]
col2_highest = sorted(list(df.RANK_SCORE), reverse = True)[:5]
for i range(len(col1_highest)):
list_one.append(df.loc[df.RANK_CTB == col1_highest[i], 'ID'])
list_two.append(df.loc[df.RANK_SCORE == col2_highest[i], 'ID'])
return list_one, list_two
list_one, list_two = 测试(name_of_df)