如果前行在熊猫中相同,则删除行

时间:2020-09-16 09:04:58

标签: python pandas numpy

我有一个数据框,并且如果前一行相同,想删除该行。

我当前的代码:

df = pd.read_csv("MyCSV.csv", ";")
df_2 = df.loc[:,['A', 'B', 'C', 'D']]
for i in df_2.itertuples():
    if df_2[i] == df_2[i+1]:
    print(df)

我有这个输入数据框:

I have this dataframe

这是我想要的输出:

dataframe i want this dataframe

用于重新创建输入数据框的代码:

df = pd.DataFrame({'time': [0,1,2,3,4,5,9,10,11,12,13,14,15],
                   'A': [0.0] * 13, 
                   'B': [0.0,0.0,0.0,0.0,0.00000813,0.00000813,0.0, 0.0,0.0,0.0,0.0,0.00000813,0.00000813], 
                   'C': [0.0000109,0.0000109,0.0,0.0,0.0,0.0,0.0,0.0,0.0000109,0.0000109,0.0,0.0,0.0],
                   'D': [0.00000222,0.00000222,0.0,0.0,0.0,0.0,0.0,0.0,0.00000222,0.00000222,0.0,0.0,0.0]
                  })

1 个答案:

答案 0 :(得分:1)

您可以使用shift进行以下操作:

cols = ['A', 'B', 'C', 'D']
df.loc[(df[cols].shift(-1) == df[cols]).all(1)]

结果数据框:

time    A         B         C         D
   0  0.0  0.000000  0.000011  0.000002
   2  0.0  0.000000  0.000000  0.000000
   4  0.0  0.000008  0.000000  0.000000
   9  0.0  0.000000  0.000000  0.000000
  11  0.0  0.000000  0.000011  0.000002
  14  0.0  0.000008  0.000000  0.000000