2014-06-04 6 views
0

У меня есть файл whitelist.csv с данными, как показано ниже.Pandas DataFrame check with Whitelist

IP Name 
66.249.72.105 GOOGLE 
66.249.72.111 GOOGLE 
157.55.32.103 MSN 

И у меня есть большие панды DataFrame "DF" с данными.

IP   User-Agent           Name 
157.55.32.100 msnbot-media/1.1 (+http://search.msn.com/msnbot.htm) MSN 
66.249.72.111 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) GOOGLE 
173.0.53.160 Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0 VIRPUS 

Что я пытаюсь найти, кто находится в белом списке из «DF». Поэтому мне нужно проверить IP и имя. Но если имя находится в DF, а IP не в белом списке, мне нужно добавить его в белый список.

DF2 = (if IP&Name or Name is in whitelist) 
    If only name is in whitelist but not IP add it in to whitelist.csv. 

Для exmple в данном DataFrame MSN есть, но 157.55.32.100 не в whitelist.csv. Поэтому мне нужно добавить его. Результирующая DF2 должно быть что-то вроде:

IP   User-Agent           Name 
157.55.32.100 msnbot-media/1.1 (+http://search.msn.com/msnbot.htm) MSN 
66.249.72.111 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) GOOGLE 

Я попытался слияния, но как добавить IP-адреса не доступны в Whitelist ?. Любая помощь приветствуется.

ответ

0

Является ли это то, что вы хотите:

In [9]: 
df.merge(df1, on=['Name','IP'], how='outer') 
Out[9]: 
       IP Name           User-Agent 
0 66.249.72.105 GOOGLE            NaN 
1 66.249.72.111 GOOGLE 'Mozilla/5.0 (compatible; Googlebot/2.1; +http... 
2 157.55.32.103  MSN            NaN 
3 157.55.32.100  MSN 'msnbot-media/1.1 (+http://search.msn.com/msnb... 
4 173.0.53.160 VIRPUS 'Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/2... 

Вы можете опустить NaN строки, если они являются избыточными, но я думаю, вы хотели бы сохранить строки, как у вас есть другой IP-адрес.

+0

Хорошо, тогда как сохранить whitelist.csv обновлено? –

+0

Хотите перезаписать csv или добавить новые записи? – EdChum

+0

Я скажу вот так, здесь GOOGLE, MSN только в белом списке. В моем «DF» также есть GOOGLE, есть MSN и новый IP для MSN. Мне нужно добавить этот новый IP-адрес в белый список? –