2016-07-09 5 views
1

У меня есть кадр данных, и мне нужно удалить определенные наблюдения из него на основе значений других столбцов.Pandas: удалять наблюдения из фрейма данных на основе столбцов mulitple

cid  date  unemployment billsum  id.thomas loansum  feccanid amtsum 
N00003147 2005.0  5.6   1.0   1336  2.0  S4TN00153 4.500 
N00009082 2007.0  3.7   1.0   11  2.0  S6CO00168 13.000 
N00013870 2007.0  4.6   3.0   1697  17.5  S2MN00126 1636.709 
N00002091 2007.0  3.1   1.0   246  11.5  S0ID00057 238.795 
N00006515 2007.0  3.8   2.0   1319  49.5  S8NM00010 966.286 

Я бы хотел, например. для удаления значений для id.thomas == 1763 только когда date == 2008 through 2012 (мой диапазон дат 2005-14). Я пробовал:

bill_amtmerge = bill_amtmerge[bill_amtmerge['id.thomas']!= 1763 & (bill_amtmerge['date'] > 2007)]

ли кто-то есть идея по этому поводу?

ответ

1

попробовать это:

mask = (df['id.thomas'] == 1763) & (df['date'] >= 2008) & (df['date'] <= 2012) 
df = df[~mask] 

в качестве альтернативы вы можете negate your condition:

df = df[(df['id.thomas'] != 1763) | (df['date'] < 2008) | (df['date'] > 2012)] 
Смежные вопросы