使用 python 从给定数据中查找国家/地区的资格
Finding Eligibility of a country from given data using python
我想解决的问题如下:
哪个国家的夏季金牌数和冬季金牌数相对于总金牌数的差异最大?
只包括在夏季和冬季都至少赢得 1 枚金牌的国家。
此函数应该 return 单个字符串值
数据
金牌:夏季金牌数
Gold.1:冬季金牌数
Gold.2:总金币
代码
def answer_three():
df1=df[(df['Gold']>0) & (df['Gold.1']>0)]
df['difference']=(df1['Gold']-df1['Gold.1']).abs()/df1['Gold.2']
return df['difference'].idxmax()
answer_three()
错误
NameError Traceback (most recent call last)
<ipython-input-7-cf807e29ca1b> in <module>()
3 df['difference']=(df1['Gold']-df1['Gold.1']).abs()/df1['Gold.2']
4 return df['difference'].idxmax()
----> 5 answer_three()
6
<ipython-input-7-cf807e29ca1b> in answer_three()
1 def answer_three():
----> 2 df1=df[(df['Gold']>=1) & (df['Gold.1']>=1)]
3 df['difference']=(df1['Gold']-df1['Gold.1']).abs()/df1['Gold.2']
4 return df['difference'].idxmax()
5 answer_three()
NameError: name 'df' is not defined
我可以得出一个答案,条件是这个国家在夏季和冬季至少要有1枚金牌。我希望有人可以帮助我修复第 2
行中的错误
谢谢
您必须将def
定义为dict()
,当变量未实例化时会发生NameError
异常。试试这个:
def answer_three():
df = {}
df1=df[(df['Gold']>0) & (df['Gold.1']>0)]
....
def answer_three():
filterinfDataframe = df[(df['Gold'] > 0) & (df['Gold.1'] > 0) ]
b = (filterinfDataframe['Gold']+filterinfDataframe['Gold.1']+filterinfDataframe['Gold.2'])
a = (filterinfDataframe['Gold'] - filterinfDataframe['Gold.1'])/b
return filterinfDataframe.loc[a.idxmax()]
answer_three()
我想解决的问题如下:
哪个国家的夏季金牌数和冬季金牌数相对于总金牌数的差异最大?
只包括在夏季和冬季都至少赢得 1 枚金牌的国家。 此函数应该 return 单个字符串值
数据
金牌:夏季金牌数
Gold.1:冬季金牌数
Gold.2:总金币
代码
def answer_three():
df1=df[(df['Gold']>0) & (df['Gold.1']>0)]
df['difference']=(df1['Gold']-df1['Gold.1']).abs()/df1['Gold.2']
return df['difference'].idxmax()
answer_three()
错误
NameError Traceback (most recent call last)
<ipython-input-7-cf807e29ca1b> in <module>()
3 df['difference']=(df1['Gold']-df1['Gold.1']).abs()/df1['Gold.2']
4 return df['difference'].idxmax()
----> 5 answer_three()
6
<ipython-input-7-cf807e29ca1b> in answer_three()
1 def answer_three():
----> 2 df1=df[(df['Gold']>=1) & (df['Gold.1']>=1)]
3 df['difference']=(df1['Gold']-df1['Gold.1']).abs()/df1['Gold.2']
4 return df['difference'].idxmax()
5 answer_three()
NameError: name 'df' is not defined
我可以得出一个答案,条件是这个国家在夏季和冬季至少要有1枚金牌。我希望有人可以帮助我修复第 2
行中的错误谢谢
您必须将def
定义为dict()
,当变量未实例化时会发生NameError
异常。试试这个:
def answer_three():
df = {}
df1=df[(df['Gold']>0) & (df['Gold.1']>0)]
....
def answer_three():
filterinfDataframe = df[(df['Gold'] > 0) & (df['Gold.1'] > 0) ]
b = (filterinfDataframe['Gold']+filterinfDataframe['Gold.1']+filterinfDataframe['Gold.2'])
a = (filterinfDataframe['Gold'] - filterinfDataframe['Gold.1'])/b
return filterinfDataframe.loc[a.idxmax()]
answer_three()