【问题标题】:Pandas truncate DataFrame rows that come before row that contains certain valuePandas 截断包含特定值的行之前的 DataFrame 行
【发布时间】:2018-04-14 16:54:44
【问题描述】:

我的数据框包含唯一的字符串,如90j1。数据框已按该列排序。我需要的是截断包含特定值的行之前的所有行。这是一个例子:

df = pd.DataFrame(['90j1', '90j2', '90j3'])
print(df)
#       0
# 0  90j1
# 1  90j2
# 2  90j3

例如,我需要用90j2 截断行之前的行。预期输出将是:

print(truncated_df)
#       0
# 0  90j2
# 1  90j3

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以使用pd.truncate:

    df.truncate(after=df.loc[df[0] == '90j2'].index[0])
    

    或简单的索引:

    df.loc[:df.loc[df[0] == '90j2'].index[0]]
    

    两者都导致:

          0
    0  90j1
    1  90j2
    

    【讨论】:

      【解决方案2】:

      这是使用.iloc的一种方式

      df.iloc[df.loc[df[0]=='90j2'].index[0]:,:]
      Out[356]: 
            0
      1  90j2
      2  90j3
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-17
        • 2023-02-04
        • 2022-11-27
        • 2018-06-08
        • 2017-05-14
        • 2020-07-31
        • 1970-01-01
        • 2022-01-26
        相关资源
        最近更新 更多