gpt4 book ai didi

python - 如何在遍历数据框列后附加列表?

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

假设我有一个数据框如下:

df = pd.DataFrame({ 'ids' : ['1', '1', '1', '1', '2', '2', '2', '3', '3'],
'values' : ['5', '8', '7', '12', '2', '1', '3', '15', '4']
}, dtype='int32')



ids values
1 5
1 7
1 8
1 12
2 1
2 3
2 2
3 4
3 15

我想做的是遍历 values 列并检查哪些值大于 6 并且 ids 列中的相应 id 必须附加到一个空列表。

即使一个 id(比如 3)有多个值,并且在这些多个值(4 和 15)中,只有一个值大于 6,我希望将相应的 id 附加到列表中。

示例:假设我们在上面提到的数据帧 df 上运行一个循环,我希望输出如下:

more = [1, 3]
less = [2]

more =[]less = [] 是预初始化的空列表

我目前拥有的:我尝试实现相同的方法,但我肯定犯了一些错误。我的代码:

less = []
more = []
for value in df['values']:
for id in df['ids']:
if (value > 6):
more.append(id)
else:
less.append(id)

最佳答案

使用groupby和 bool 索引来创建您的列表。这将比循环快得多:

g = df.groupby('ids')['values'].max()
mask = g.gt(6)
more = g[mask].index.tolist()
less = g[~mask].index.tolist()

print(more)
print(less)

[1, 3]
[2]

关于python - 如何在遍历数据框列后附加列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55413352/

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