【问题标题】:I want to drop a row if [duplicate]如果[重复],我想删除一行
【发布时间】:2018-09-10 21:54:22
【问题描述】:

我在 python 代码中有一个名为 df1 的数据框:

    SYMBOL    TYPE          DATE       VALUE
0    ABC     Normal       29-03-2018     100
1    DEF     Artificial   30-03-2018      96
2    DEF     Normal       01-04-2018     105

和 5000 行这样的行

我想删除包含 TYPE = 人工的行 我写了以下代码,但它给出了一个错误

for i in df1:
    if df1['trade_type'] == 'Artificial':
        del df1[i]
print(df1)

它给出的错误是:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

【问题讨论】:

    标签: python pandas dataframe indexing data-manipulation


    【解决方案1】:

    试试下面的:

    df1 = df1.drop(df1[df1['TYPE'] == 'Artificial'].index)
    

    【讨论】:

      【解决方案2】:
      import pandas as pd
      
      data = '''\
      SYMBOL    TYPE          DATE       VALUE
      ABC     Normal       29-03-2018     100
      DEF     Artificial   30-03-2018      96
      DEF     Normal       01-04-2018     105'''
      
      df = pd.read_csv(pd.compat.StringIO(data), sep='\s+')
      
      # Create a mask
      m = df.TYPE != 'Artificial'
      
      # Reassign with mask
      df = df.loc[m]
      

      【讨论】:

        猜你喜欢
        • 2014-03-01
        • 1970-01-01
        • 2020-03-16
        • 2013-08-09
        • 2016-07-26
        • 2020-01-15
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多