1
我正在研究一些機器學習任務,我想將每行從「編號對象」更改爲「按某些attrs對象排序」。例如,我有兩支隊伍由他們的統計數據(dN_%stat%和rN_%stat%)代表的5個英雄,我想要的是按照編號3,4,0的統計數字對每個隊伍中的英雄進行排序, 2所以第一個是最強的,依此類推。按行排序熊貓分組列表
這裏是我當前的代碼,但它是非常緩慢的,所以我想用本土大熊貓的對象和操作:
def sort_heroes(df):
for match_id in df.index:
for team in ['r', 'd']:
heroes = []
for n in range(1,6):
heroes.append(
[df.ix[match_id, '%s%s_%s' % (team, n, stat)]
for stat in stats])
heroes.sort(key=lambda x: (x[3], x[4], x[0], x[2]))
for n in range(1,6):
for i, stat in enumerate(stats):
df.ix[match_id, '%s%s_%s' %
(team, n, stat)] = heroes[n - 1][i]
簡短的例子有不完整的,但有用的數據表示:
match_id r1_xp r1_gold r2_xp r2_gold r3_xp r3_gold d1_xp d1_gold d2_xp d2_gold
1 10 20 100 10 5000 300 0 0 15 5
2 1 1 1000 80 100 13 200 87 311 67
我想要的是按帶有前綴(rN_和dN_)的組排序這些列,然後通過xp
match_id r1_xp r1_gold r2_xp r2_gold r3_xp r3_gold d1_xp d1_gold d2_xp d2_gold
1 5000 300 10 20 100 20 15 5 0 0
2 1000 80 100 13 1 1 200 87 311 67
你能發佈的數據框你如何構造一個簡單的例子? – sobek
數據框中的行是什麼? – sobek
每一行代表關於比賽的信息,其中的英雄隊伍%NUM %%取%部分 – Sindbag