2016-12-29 93 views
-2

考慮下面熊貓:如何從DF一些數據

df = pd.DataFrame({ 
     'ID': [111, 222, 444], 
     'date': ['21-12-2016', '23-12-2016', '26-12-2016'], 
     'url': ['vk.com', 'twitter.com', 'twitter.com']}) 

print(df) 

    ID  date   url 
0 111 21-12-2016  vk.com 
1 222 23-12-2016 twitter.com 
2 444 26-12-2016 twitter.com 

定義數據幀df,我希望能夠過濾dfdates這樣,我得到

dates

dates = ['21-12-2016', '23-12-2016'] 

列表獲取

ID  date   url 
0 111 21-12-2016  vk.com 
1 222 23-12-2016 twitter.com 

到目前爲止,我已經試過

df['date'] == dates 

但我得到一個ValueError

ValueError: Arrays were different lengths: 3 vs 2

+1

堆棧溢出不是一個代碼編寫的服務。你能告訴我們你試過了什麼嗎? –

回答

1

像這樣的事情?

import pandas as pd 

# df = pd.read_clipboard() 
dates = ['21-12-2016', '23-12-2016'] 
print df[df.date.isin(dates)] 

輸出:

ID   url  date 
0 111  vk.com 21-12-2016 
1 222 twitter.com 23-12-2016 
1

您可以使用query

df.query('date in @dates') 

    ID  date   url 
0 111 21-12-2016  vk.com 
1 222 23-12-2016 twitter.com 

使用date作爲索引,並使用loc

df.set_index('date').loc[dates].reset_index() 

     date ID   url 
0 21-12-2016 111  vk.com 
1 23-12-2016 222 twitter.com 

使用numpy廣播

df[(df.date.values[:, None] == dates).any(1)] 

    ID  date   url 
0 111 21-12-2016  vk.com 
1 222 23-12-2016 twitter.com