通过索引符号而不是列名称选择数据框中的列

我想使用条目“开始”df_D从给定的输入创建一个df作为行索引和列索引的参考。


我不想使用列名A,B, C等。


相反,我希望使用索引,因为序列始终是“START”的前 3 列和最后 3 列,即类似n,n+1,n+2, n+5,n+6,n+7


输入:


df = pd.DataFrame({'A':['jfgh',23,'Ndfg',34,0,56],'B':['jfgh',23,'START',34,0,56], 'C':['cvb',7,'dsfgA',65,47,3],'D':['rrb',7,'gfd',3,0,7],'E':['dfg',7,'gfd',5,12,1],'F':['dfg',7,'sdfA',5,0,4],'G':['dfg',7,'sdA',5,8,9],'H':['dfg',7,'gfA',5,0,8],'I':['dfg',7,'sdfA',5,7,23]})

输出:


      A      B      C    D    E     F    G    H     I

0  jfgh   jfgh    cvb  rrb  dfg   dfg  dfg  dfg   dfg

1    23     23      7    7    7     7    7    7     7

2  Ndfg  START  dsfgA  gfd  gfd  sdfA  sdA  gfA  sdfA

3    34     34     65    3    5     5    5    5     5

4     0      0     47    0   12     0    8    0     7

5    56     56      3    7    1     4    9    8    23

所需输出: df_D 手动创建


    B   C  D  G  H   I

0   0  47  0  8  0   7

1  56   3  7  9  8  23

尝试1:


for index in range(len(df)):

    if str(df.loc[index,'C']).startswith('START'):

        df_D = df.iloc[index+1:len(df), [1,2,3,6,7,8]]

        break 

结果输出:


Empty DataFrame

Columns: [B, C, D, G, H, I]

Index: []

我哪里出错了?


慕村9548890
浏览 109回答 2
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   I4   0  47  0  8  0   75  56   3  7  9  8  23

开满天机

步骤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])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python