当前位置:首页 >> 中医诊断 >> Python GroupBy 即兴

Python GroupBy 即兴

发布时间:2025-02-22

groupby(iterator) -> list[tuple[str, list]]:

groupby_list = []

for key, group in iterator:

groupby_list.append((key, list(group)))

return groupby_list

groupby_housing_type_iter = itertools.groupby(

data, key=lambda row: row["Housing_Type"]

groupby_housing = create_tuples_from_groupby(

groupby_housing_type_iter

如果我们绘制通过 groupby 找出的年前 10 个一组,我们可以看到基于住屋一般来说的一些渐进性:在年前 200 行左右,房屋和隔壁的集中都度愈来愈高。 如果住屋一般来说是一个极其重要表达式,我们可以考虑原先平衡数据库,使其分布愈来愈匀。

用于数据库类维护一组类型

您必须为 groupby 提可让一个关基团不定数,该不定数提取要在其上产生一组的增量中都每个页面的类型。 如果您自已对单个类型顺利完成分一组,您并不一定都会用于一个简单的 lambda 不定数来查询它:

groupby_housing_type_iter = itertools.groupby(

data, key=lambda row: row["Housing_Type"]

但是,如果您自已按多个值分一组怎么办? 您可以创建人要分一组的两个类型的URL或哈希,并将其主要用途基团。 假设我们按住屋一般来说和孩童为数顺利完成分一组:

key = lambda row: f"{row['Housing_Type']}_{row['Total_Children']}"

groupby_housing_children = itertools.groupby(data, key=key)

for key, group in groupby_housing_children:

housing_type = key.split('_')[0]

total_children = next(iter(group))['Total_Children']

此code运行较差,但在您无需都会面时一组类型时都会失败。 您要么必须苦于URL类比,要么必须读取一组小团体之一的类型。 这些关基团技术都不是都有朴素。

我们可以通过创建人一个返回图标具体来说的愈来愈复杂的基团不定数来解决这个情况。 groupby 的唯一年必要条件是具体来说较强可比性。 由于图标具体来说默认通过内存引用顺利完成相当,我们无需付诸自己的 词一组eq词一组 不定数。 幸运的是,标准化努的 dataclasses 打包打包含为我们指派此操作的一新功能。 为数据库类花纹容器提可让 eq=True 将降解一个 词一组eq词一组 方法,该方法根据具体来说的类型相当具体来说,这正是我们所无需的! 我还自已添加 freeze=True 以使一组基团不可不定。

code现在显得愈来愈具文学性,我们可以同样从密钥精彩都会面时每个一组的类型。 另一个某种程度是,关基团具体来说较强一般来说类型,可可让 IntelliSense 和实例code分析方法工具箱用于。

from dataclasses import dataclass

@dataclass(eq=True, frozen=True)

class HousingTypeTotalChildren:

housing_type: str

total_children: int

@classmethod

def from_row(cls, row: dict) -> "HousingTypeTotalChildren":

return cls(

housing_type=row['Housing_Type'],

total_children=int(row['Total_Children'])

group_by_housing_children = itertools.groupby(

data, key=HousingTypeTotalChildren.from_row

for key, group in group_by_housing_children:

# Access group properties directly from the key

print(

f"Housing type: {key.housing_type}, "

f"Total children: {key.total_children}"

结论

itertools 打包打包含许多片子的工具箱,例如 groupby。 对于大多数简单的用例来说,它从未有限强劲了,因此您不用苦于第三方努。 当然,groupby 也有其局限性,而且对于复杂的数据库分析方法。

佛山好的男科专科医院
上海皮肤病医院地址
宜春白癜风检查哪家医院好
宁波妇科医院去哪家好
无锡男科医院哪家最好
出游肠胃不适吃什么有效果
英太青治牙疼吗
视疲劳用什么眼药水
如何安胎
双手手指僵硬是怎么回事
标签:
友情链接: