gpt4 book ai didi

Python Dataframe - 每第 n 行 iloc

转载 作者:行者123 更新时间:2023-12-05 03:47:43 25 4
gpt4 key购买 nike

我有一个数据框“Codes”,它有 3 列和 36 行。

我已经成功地使用 iloc 选择了数据框中的每第 n 行。我的下面代码正确地分配了每 12 行,从詹姆斯的第 0 行开始,史蒂夫的第 4 行和加里的第 8 行。每人留 3 行。

James = Codes.iloc[0::12, :]
Steve = Codes.iloc[4::12, :]
Gary = Codes.iloc[8::12, :]

从这里开始,我如何修改我的代码以分配中间的行?因此,为 James 分配前 4 行(0 到 3),为 Steve 分配后 4 行(4 到 7),为 Gary 分配后 4 行(8 到 11)。直觉上应该是这样的:

James = Codes.iloc[0:3:12, :]
Steve = Codes.iloc[4:7:12, :]
Gary = Codes.iloc[8:11:12, :]

但它只为每个名字选择 1 行,因为代码在 James 的 3 行、Steve 的 7 行和 Gary 的 11 行之后结束。如果我让它正常工作,它将在 3 个人之间拆分我的 36 行数据框,给他们 12 行,每行 4 block 。

这个脚本做的工作:

James = Codes.iloc [[0,1,2,3, 12,13,14,15, 24,25,26,27]]
Steve = Codes.iloc [[4,5,6,7, 16,17,18,19, 28,29,30,31]]
Gary = Codes.iloc [[8,9,10,11, 20,21,22,23, 32,33,34,35]]

但它冗长且无法帮助我处理大型数据集,我会考虑将其应用到

最佳答案

您可以在名为 name 的数据框中添加一列,并在该列中填写您要将该行分配给的名称。

from itertools import cycle, islice
name_pattern = ["James"]*4 + ["Steve"]*4 + ["Gary"]*4
Code["name"] = list(islice(cycle(name_pattern), Code.shape[0]))

最后一行只是重复数据框中行数的模式。然后,如果您仍然希望将这些行保存到单独的数据框中,您可以去

James = Code[Code["name"]=="James"]
Steve = Code[Code["name"]=="Steve"]
Gary = Code[Code["name"]=="Gary"]

关于Python Dataframe - 每第 n 行 iloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64773573/

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