有一个csv文件,其中包含每个国家(数据框中的索引)赢得的国家/地区列表和相应的夏季和冬季金牌。像这样的东西 -
Gold Gold.1
Algeria 5 0
Armenia 8 1
以下是我正在使用的代码:
def Max_Diff():
Gold_Diff = []
Diff = 0
for row in df.iterrows():
Diff = df['Gold'] - df['Gold.1']
Gold_Diff.append(Diff)
return max(Gold_Diff)`enter code here`
Max_Diff()
等等。 “金牌”是夏季赢得的金牌,“金牌1”是冬季赢得的金牌。
我需要找到黄金(夏季)和黄金(冬季)数量之间存在最大差异的国家/地区。我的代码是,首先迭代数据帧中的所有行,并附加一个由国家和相应差异组成的列表。然后在列表中应用max函数以获取具有最大差异的国家/地区的值
但是上面的代码按原样呈现整个列表,而不是一个值。
此外,在此方法之前,我尝试使用pd.Series(Gold_Diff)将此列表转换为系列。但转换没有正确发生,输出是这样的 -
阿尔及利亚5 阿尔梅尼..... dtype:object
转换为系列背后的想法是在系列转换后使用idxmax函数,并获得系列中最大差值的索引值(国家/地区名称)。
答案 0 :(得分:0)
您可以使用
获取列之间的差异df['Gold'] - df['Gold.1']
如果您对绝对差异感兴趣,请使用
abs(df['Gold'] - df['Gold.1'])
上面的代码返回一个pandas系列。您可以使用idxmax()
获取差异最大的国家/地区的名称(abs(df['Gold'] - df['Gold.1'])).idxmax()