2015-01-15 17 views

cevap

19

pandas.Dataframe.isin'u kullanabilirsiniz. Her bir öğenin a listesinin içinde olup olmadığına bağlı olarak, boole değerlerini döndürecektir. Daha sonra ~ ile True'u False'a dönüştürün ve bunun tersini yapın.

import pandas as pd 

a = ['2015-01-01' , '2015-02-01'] 

df = pd.DataFrame(data={'date':['2015-01-01' , '2015-02-01', '2015-03-01' , '2015-04-01', '2015-05-01' , '2015-06-01']}) 

print(df) 
#   date 
#0 2015-01-01 
#1 2015-02-01 
#2 2015-03-01 
#3 2015-04-01 
#4 2015-05-01 
#5 2015-06-01 

df = df[~df['date'].isin(a)] 

print(df) 
#   date 
#2 2015-03-01 
#3 2015-04-01 
#4 2015-05-01 
#5 2015-06-01 
+0

işe yarıyor .. teşekkür ederim –

8

kullanabilirsiniz isin:

df = df[~df.datecolumn.isin(a)] 

hata mesajı all() veya any() can olduğunu iddia etseler Kullanılmak üzere, yalnızca sonucu Boolean değerine indirgemek istediğinizde kullanışlıdırlar. Ancak, şu an yapmaya çalıştığınız şey değil, yani Seri'deki tüm değerlerin üyeliğini dış listeye karşı test etmek ve sonuçları bozulmadan saklamak (yani, daha sonra orijinal DataFrame'i dilimlemek için kullanılacak bir Boole Dizisi)).

Bu konuda daha fazla bilgiyi Gotchas numaralı telefondan bulabilirsiniz.

+0

Çalıştı .. Teşekkür ederim –

İlgili konular