如何根据列值在 Dataframe 中应用 iloc

How to apply iloc in a Dataframe depending on a column value

我有一个包含以下列的数据框:
“国家名称”
“指标代码”
“Porcentaje de Registros”(如图所示)每个国家有 32 个指标代码及其百分比值。

值按降序排列,我需要保留每个国家/地区的第 15 个最高值,这意味着例如对于厄瓜多尔,我需要知道哪些是第 15 个最高值的指标。我正在尝试以下操作:

countries = gender['Country Name'].drop_duplicates().to_list() 
for countries in countries:
          test = RelevantFeaturesByID[RelevantFeaturesByID['Country Name']==countries].set_index(["Country Name", "Indicator Code"]).iloc[0:15]
test

但它只是 returns 一个国家/地区的前 15 行。 我做错了什么?

循环语句 for countries in countries: 中存在拼写错误,然后您再次使用 countries。那肯定是个问题。你也多次代替测试。

我不确定我是否理解你的目标是什么,但这似乎是一个很好的开始:

# sorting with respect to countries and their percentage
df = df.sort_values(by=[df.columns[0],df.columns[-1]],ascending=[True,False])

# choosing unique values of country names
countries = df[df.columns[0]].unique()

test = []
for country in countries:
    test.append( df.loc[df["Country Name"]==country].iloc[0:15] )