gpt4 book ai didi

python - 从 pandas groupby 操作结果构造一个超集

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:12 25 4
gpt4 key购买 nike

name_region
bahia [10, 11, 12, 1, 2, 3, 4]
distrito_federal [9, 10, 11, 12, 1, 2, 3, 4]
goias [9, 10, 11, 12, 1, 2, 3, 4]
maranhao [10, 11, 12, 1, 2, 3, 4]
mato_grosso [9, 10, 11, 12, 1, 2, 3, 4]
mato_grosso_do_sul [8, 9, 10, 11, 12, 1, 2, 3]

我上面有一个 pandas 系列,是通过 groupby 操作获得的。第二列代表一年中的月份。我如何构建月份的超集,即 [8, 9, 10, 11, 12, 1, 2, 3, 4] 因为它代表了所有可能出现的月份数据集

--注意:我确实想保持秩序

最佳答案

您可以使用 itertools recipe unique_everseen(保留顺序)如下所示:

>>> [i for i in unique_everseen([z for z in y['months'] for x,y in df.iterrows()])]
[9, 10, 11, 12, 1, 2, 3, 4]

unique_everseen的定义:

import itertools as it
def unique_everseen(iterable, key=None):
"List unique elements, preserving order. Remember all elements ever seen."
# unique_everseen('AAAABBBCCDAABBB') --> A B C D
# unique_everseen('ABBCcAD', str.lower) --> A B C D
seen = set()
seen_add = seen.add
if key is None:
for element in it.ifilterfalse(seen.__contains__, iterable):
seen_add(element)
yield element
else:
for element in iterable:
k = key(element)
if k not in seen:
seen_add(k)
yield element

关于python - 从 pandas groupby 操作结果构造一个超集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com