【问题标题】:Delete Rows in Pandas DataFrame based on conditional expression [duplicate]根据条件表达式删除 Pandas DataFrame 中的行
【发布时间】:2020-10-27 03:56:58
【问题描述】:

我有以下数据框:

index        text        is_retweet
0            Test        False
1            RT bar      False
2            RT bazz     False
3            Test2       False

我想删除以“RT”开头的行

我试过了:

my_df.drop(my_df.index[my_df['text'].find("RT") == 0], inplace = True)

但我收到此错误:

AttributeError: 'Series' object has no attribute 'find'

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    另一个取字符位置的选项:

    df1 = df[df['text'].str[0:2] != 'RT']
    df1
    

    输出:

        index   text    is_retweet
    0       0   Test    False
    3       3   Test2   False
    

    【讨论】:

      【解决方案2】:

      使用pandas.Series.str.startswith:

      new_df = df[~df["text"].str.startswith("RT")]
      print(new_df)
      

      输出:

         index   text  is_retweet
      0      0   Test       False
      3      3  Test2       False
      

      【讨论】:

        猜你喜欢
        • 2018-01-11
        • 1970-01-01
        • 2022-06-21
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 2016-01-18
        • 1970-01-01
        相关资源
        最近更新 更多