我有一个数据框,并且如果前一行相同,想删除该行。
我当前的代码:
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)
我有这个输入数据框:
这是我想要的输出:
用于重新创建输入数据框的代码:
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]
})
答案 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