代码之家  ›  专栏  ›  技术社区  ›  KansaiRobot

只选择数据帧的某些行

  •  1
  • KansaiRobot  · 技术社区  · 2 年前

    我有一个熊猫数据帧,里面有一些信息。我知道如何选择数据帧的某一行。

    但是,我想在以下条件下将数据帧的几行选择到另一个数据帧中:

    1. 我不知道有多少排
    2. 我必须选择第一个,然后在一个区间。

    例如,如果我有

    import pandas as pd
    import numpy as np
    df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                       'B': 'one one two three two two one three'.split(),
                       'C': np.arange(8), 'D': np.arange(8) * 2})
                       
    print(df)
    

    我有

         A      B  C   D
    0  foo    one  0   0
    1  bar    one  1   2
    2  foo    two  2   4
    3  bar  three  3   6
    4  foo    two  4   8
    5  bar    two  5  10
    6  foo    one  6  12
    7  foo  three  7  14
    

    我想以4的间隔获得

         A      B  C   D
    0  foo    one  0   0
    4  foo    two  4   8
    

    或者如果间隔为3

         A      B  C   D
    0  foo    one  0   0
    3  bar  three  3   6
    6  foo    one  6  12
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   mozway    2 年前

    使用 loc 使用一个切片,就像您对可迭代对象所做的那样:

    df.loc[::4]
    
         A    B  C  D
    0  foo  one  0  0
    4  foo  two  4  8
    
    df.loc[::3]
    
         A      B  C   D
    0  foo    one  0   0
    3  bar  three  3   6
    6  foo    one  6  12
    

    NB。您也可以使用 df[::4] / df[::3] 但是 loc 更通用(例如,对于柱: df.loc[:,::3] ).