df['Total'] = df['HP'] + df['Attack'] + df['Defense'] + df['Sp. Atk'] + df['Sp. Def'] +
df['Speed']
df['Total'] = df.iloc[:,4:10].sum(axis=1)
df['Total'] = df['Total'].astype(int)
cols = list(df.columns.values)
df = df[cols[1:3] + [cols[-1]] + cols[3:12]]
df = df.sort_values(by=['Name','Total'], ascending=[True,False])
我的输出如下所示:
Name Type 1 Total ... Speed Generation Legendary
510 Abomasnow Grass 494 ... 60 4 False
511 AbomasnowMega Abomasnow Grass 594 ... 30 4 False
68 Abra Psychic 310 ... 90 1 False
392 Absol Dark 465 ... 75 3 False
393 AbsolMega Absol Dark 565 ... 115 3 False
是否可以在索引中加入一个名为"排名"的新列,该列将按名称总数从第一到倒数对名称进行排名?
是的!
import numpy as np
df["Rank"] = np.argsort(df["Total"])
Numpy 的 argsort 函数"返回对数组进行排序的索引">
使用熊猫,您可以轻松添加列。
s= pd.Series(df.sort_values(by='Total').index)
df['Rank']= s
您可能会在数据框中找到"排名"列。