2 回答
TA贡献1863条经验 获得超2个赞
我们可以使用它np.where来查找起始索引。然后使用ilocwithnp._r来创建我们的切片:
start_col = np.where(df.eq("START"))[1][0]
cols = df.shape[1]
col_select = np.r_[start_col: start_col+3, cols-3: cols]
df.iloc[-2:, col_select]
B C D G H I
4 0 47 0 8 0 7
5 56 3 7 9 8 23
TA贡献1786条经验 获得超13个赞
步骤0:初始化一个空列表k
第 1 步:使用 df.shape[1] "START" 上的 for 循环遍历所有列
步骤 2:迭代每列中的所有行我使用 df 执行此操作。形状[0]
第三步:搜索“开始”
第 4 步:找到后存储列号。和变量中的行号。
第 5 步:使用这些变量来索引所需的所有行和列。所以你使用 row+1 因为你想要 START 下面的所有内容和 col ,col+ 1 等等。
步骤 6:将数据帧添加到列表 k
最后一步:您可以看到 k[0] 给出了 start 的第一个实例,k[1] 给出了 start 的第二个实例,您可以将其用作更通用的代码。如果您不希望所有实例在找到第一个数据帧后立即使用中断。
k=[]
for i in range(df.shape[0]):
for y in range(df.shape[0]):
if df.iloc[y,i] == 'START':
col = i
row = y
k.append(df.iloc[row+1:,[col,col+1,col+2,-3,-2,-1]])
print("first START")
print(k[0])
print("\n Second START")
print(k[1])
添加回答
举报