try this:
df.ix[~df.ID.isin(list_IDs)]
Explanation
constructions like df.ID not in list_IDs
won't work even in vanilla Python:
In [12]: [1,2,3] in [1,2,3]
Out[12]: False
In [13]: [1,2] in [1,2,3]
Out[13]: False
In pandas you want to use .isin() function
Data:
In [14]: list_IDs
Out[14]: [24, 12, 42, 44]
In [15]: df
Out[15]:
ID A
0 58 69
1 36 63
2 92 43
3 24 37
4 12 54
5 42 0
6 44 57
7 78 59
8 59 85
9 56 84
Demo
In [16]: df.ID.isin(list_IDs)
Out[16]:
0 False
1 False
2 False
3 True
4 True
5 True
6 True
7 False
8 False
9 False
Name: ID, dtype: bool
In [17]: df[df.ID.isin(list_IDs)]
Out[17]:
ID A
3 24 37
4 12 54
5 42 0
6 44 57
Negative isin()
In [18]: df[~df.ID.isin(list_IDs)]
Out[18]:
ID A
0 58 69
1 36 63
2 92 43
7 78 59
8 59 85
9 56 84
In [19]: ~df.ID.isin(list_IDs)
Out[19]:
0 True
1 True
2 True
3 False
4 False
5 False
6 False
7 True
8 True
9 True
Name: ID, dtype: bool