如何根据来自不同列的多个值过滤熊猫表? [复制]

Posted

技术标签:

【中文标题】如何根据来自不同列的多个值过滤熊猫表? [复制]【英文标题】:How to filter pandas table based on multiple values from differen columns? [duplicate] 【发布时间】:2020-02-26 13:50:21 【问题描述】:

我有一个以下格式 [df] 的 pandas 表,由“noc”和“year”索引。如何访问“noc、年份组合”并将“total_medals”条目保存到列表中?

          medal  Bronze  Gold  Medal  Silver  total_medals 
noc year                                                 
ALG 1984    2.0     NaN   NaN    NaN     2.0    2.000000 
    1992    4.0     2.0   NaN    NaN     6.0    4.000000 
    1996    2.0     1.0   NaN    4.0     7.0    5.000000 
ANZ 1984    2.0    15.0   NaN    2.0    19.0   19.000000 
    1992    3.0     5.0   NaN    2.0    10.0   14.500000 
    1996    1.0     2.0   NaN    2.0     5.0   11.333333 
ARG 1984    2.0     6.0   NaN    3.0    11.0   11.000000 
    1992    5.0     3.0   NaN   24.0    32.0   21.500000 
    1996    3.0     7.0   NaN    5.0    15.0   19.333333

例如:我想访问 1992 年 ARG 的“total_medals”(即 21.5)并将其保存到新列表中。

【问题讨论】:

你能解释一下为什么需要列表吗?因为输出是标量。 这能回答你的问题吗? Select rows in pandas MultiIndex DataFrame 【参考方案1】:

索引值中有MultiIndex,所以可以通过DataFrame.loc中的元组来取值:

a = df.loc[('ARG',1992), 'total_medals']
print (a)
21.5

【讨论】:

以上是关于如何根据来自不同列的多个值过滤熊猫表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫数据框中仅填充选定列的空值? [复制]

如何根据值计数过滤熊猫 DataFrame?

如何一次性检测和删除熊猫数据帧每一列的异常值? [复制]

这个熊猫警告来自哪里?

根据来自不同对象数组的属性和值过滤对象数组

如何使用列名在 Excel 过滤表中选择多个不相邻的列