gpt4 book ai didi

python - 使用 Pandas groupby 将每一行分成多个组?

转载 作者:行者123 更新时间:2023-12-01 05:09:21 25 4
gpt4 key购买 nike

所以我有一个如下所示的 DataFrame:

In [5]: import pandas as pd, numpy as np
np.random.seed(seed=43525)
descriptors = 'abcdefghi'
df = pd.DataFrame([{'Value':np.random.randint(0,100),
'Group':descriptors[np.random.randint(0, len(descriptors)):
np.random.randint(0, len(descriptors))]} for i in range(0,10)])
print(df)

Group Value
0 4
1 abc 37
2 efgh 99
3 a 67
4 37
5 52
6 46
7 b 41
8 d 17
9 36

描述符列表中的每个字符都应该成为自己的组(以及空组)。我如何执行groupby来完成此任务?

因此,组“a”将包含索引 1 和 3,组“b”将包含索引 1 和 7 等。这是使用 groupby 的相当非标准的方法(如果可以用它来完成的话)所以我不知道如何继续。

最佳答案

根据 Edchum 的回答,我想出了以下内容。该结构也类似于 groupby 对象的结构:

indices = {}
for val in np.unique(''.join(df.Group.values)):
indices[val] = df[df.Group.str.contains(val)]
print(indices)

给出以下格式错误但正确的答案:

{'a':   Group  Value
1 abc 37
3 a 67, 'c': Group Value
1 abc 37, 'b': Group Value
1 abc 37
7 b 41, 'e': Group Value
2 efgh 99, 'd': Group Value
8 d 17, 'g': Group Value
2 efgh 99, 'f': Group Value
2 efgh 99, 'h': Group Value
2 efgh 99}

关于python - 使用 Pandas groupby 将每一行分成多个组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24511674/

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