2016-11-25 57 views
1

我有一個數據幀:獲得特殊日期列該列包含日期,小時,秒

df=pandas.DataFrame([{'remarkTime':'2014-03-03 10:18','name':'a'},{'remarkTime':'2015-05-03 09:12','name':'b'}, 
        {'remarkTime':'2014-03-03 18:12','name':'c'}]) 

我想獲得remarkTime這是2014年3月3日。結果是這樣的:

name remarkTime 
0 a 2014-03-03 
1 c 2014-03-03 

首先,我嘗試使用「==」或「in」來獲取該行。但「==」不適合這種情況。其次,我嘗試拆分「2014-03-03 10:18」。但它失敗了。

非常感謝!

回答

1

我認爲你可以使用boolean indexing並將datedate進行比較。最後解析date

#convert to datetime if necessary 
df.remarkTime = pd.to_datetime(df.remarkTime) 

print (df.remarkTime.dt.date == pd.Timestamp(2014,3,3).date()) 
0  True 
1 False 
2  True 
Name: remarkTime, dtype: bool 

df = df[df.remarkTime.dt.date == pd.Timestamp(2014,3,3).date()] 
print (df) 
    name   remarkTime 
0 a 2014-03-03 10:18:00 
2 c 2014-03-03 18:12:00 

df.remarkTime = df.remarkTime.dt.date 
print (df) 
    name remarkTime 
0 a 2014-03-03 
2 c 2014-03-03