如何循环遍历 Pandas df?

Posted

技术标签:

【中文标题】如何循环遍历 Pandas df?【英文标题】:How To Loop Through Pandas df? 【发布时间】:2021-09-12 17:33:31 【问题描述】:

我有这个 df

我想创建一个能够获取指定值的循环:

接种疫苗的人数(介于 M 和 F 之间), 第一剂和第二剂之和 名称区域被选中

所以有条件的字符串是这样的:

br = vaccini.loc[(vaccini['fornitore'] == 'Pfizer/BioNTech') & 
             (vaccini['fascia_anagrafica'] == '20-29') & 
             (vaccini['nome_area'] == 'Abruzzo')].sum()

但我想创建一个循环以提高计算效率,例如:

对于 df 中的 x 如果 fornitore 是(同一个词) 如果 fascia_anagrafica 是(同一个词) 如果 nome_area 是(同一个词) 打印(x)

【问题讨论】:

【参考方案1】:

我认为你想要的是一个 groupby。

cols = [s for s in vaccini.columns if s.startswith('sesso') or s.endswith('dose')]
vaccini.groupby(['fornitore', 'fascia_anagrafica', 'nome_area'])[cols].sum()

这将汇总每个组中提供的列。如果您想要一个特定的总和,只需使用适用的制造商、年龄和位置查询适用行的生成多索引。

通常,对于 Pandas,您希望尽可能避免循环。如果您查看库,通常有一些方法可以绕过循环,因此有大量关于 Pandas 的研究元素(除非您要查找的内容非常不标准)。

【讨论】:

以上是关于如何循环遍历 Pandas df?的主要内容,如果未能解决你的问题,请参考以下文章

pandas 按照行遍历进行处理

pandas.DataFrame.loc好慢,怎么遍历访问DataFrame比较快

Python / Pandas:循环遍历数字列表

使用 groupby 循环遍历 pandas 中的多个变量组合

在数据帧上的 pandas groupby 之后循环遍历组

Pandas循环遍历数据帧并使用while循环列表