有没有办法在熊猫中添加一个名为 "Rank" 的列,该列会将值列表作为数字 1 作为最大值,依此类推?


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

您可能会在数据框中找到"排名"列。

相关内容

最新更新