Python GroupBy 即兴
发布时间:2025-02-22
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 也有其局限性,而且对于复杂的数据库分析方法。
。佛山好的男科专科医院上海皮肤病医院地址
宜春白癜风检查哪家医院好
宁波妇科医院去哪家好
无锡男科医院哪家最好
出游肠胃不适吃什么有效果
英太青治牙疼吗
视疲劳用什么眼药水
如何安胎
双手手指僵硬是怎么回事
-
灵活调整受疫情影响人群还房贷构想!银保监会再发声
料保监会5月4日暗示,要带头料行总括执意“住所是用来住的、不是用来熟的”定位,因城施策落实好差别化住房金融机构政策,拥护首套和提升性住房需求量,灵活调整受疫情影响人群个人住房贷款偿付构想。
- 2025-05-11流动性压力持续!房企融资规模同比大降5成…四部门同日表态,被囚什么信号?
- 2025-05-11迁西租房、二手房、新楼盘、商铺租兑信息,有无需的进来了解一下吧!!!
- 2025-05-11“五一”楼市遇冷 13个重点城市新建商品住宅成交面积不战五成
- 2025-05-11广州年末集中供地 17宗地成交收金341亿元
- 2025-05-11五一楼市未升温,广州亟需政策强有力支持
- 2025-05-11孕妈们别再被忽悠!明星产后模样太欺骗,这才是最真实的样子
- 2025-05-11《新居之约》:潘粤明与王鸥演绎职场甜蜜,从欢喜冤家到亲密无间
- 2025-05-11宫外孕裂痕万分危急!淄博市中西医结合医院展开生死救援
- 2025-05-11上海新华医院孕检 糖耐、胎心监护概要检查流程
- 2025-05-11上海新华医院男婴建档指南