I have a dataframe:
import pandas as pd
inp = [{'id':1, 'c2':100}, {'id':2,'c2':110}, {'id':4,'c2':120}]
df = pd.DataFrame(inp)
the id column must be a logical sequence 1,2,3,4..etc.
the id column can contain an infinite number of values.
what is the simplest method to detect the bad int at the level of the 3rd row (id = 4). Normally id = 3
Thank you
CodePudding user response:
If possible check differency between values of id
and test if greater like 1
use:
df = df[df['id'].diff().gt(1)]
print (df)
id c2
2 4 120
If there is default RangeIndex
and id
starting by 1
:
df = df[df['id'].sub(df.index) != 1]
CodePudding user response:
Try this:
>>> (df.index 1) == df['id']
array([ True, True, False])
>>> df[~((df.index 1) == df['id'])]
id c2
2 4 120