【发布时间】:2020-06-16 20:36:07
【问题描述】:
编写一个函数来创建一个名为“Points”的系列,这是一个加权值,其中每枚金牌 (Gold.2) 计为 3 分,银牌 (Silver.2) 计为 2 分,铜牌 (@987654323 @) 1 分。该函数应该只返回您创建的列(一个 Series 对象)。
此函数应返回一个名为 Points 的系列,长度为 146
我是 python 和 pandas 的新手,我不知道我是否在正确的轨道上使用这段代码,但我遇到了一个关键错误
KeyError: "['Gold.2' 'Silver.2' 'Bronze.2'] not in index" for this code:
import pandas as pd
df = pd.read_csv('olympics.csv', index_col=0, skiprows=1)
def answer_four():
df['Points'] = df[(df[['Gold.2','Silver.2','Bronze.2']], [3,2,1])]
#df[['Gold.2','Silver.2','Bronze.2']].apply(lambda x:(x,[3,2,1]))
olympic_points_df = df[['Points']]
return olympic_points_df
answer_four()
对此的任何帮助将不胜感激。
【问题讨论】:
-
所以...这个声明...
df['Points'] = df[(df[['Gold.2','Silver.2','Bronze.2']], [3,2,1])]...你到底想在这里给df['Points']分配什么??? -
通常您首先排序黄金,然后是白银,然后是青铜。 2 金永远比 1 金 + 12 银值钱。
标签: python