2017-10-09 73 views
0

我在下表中有一個名爲df的數據框,其中包含以下列:「date」和「Name」。我打算過濾器的基礎上的「日期」欄,即分組基於每一天旁邊的「名稱」列「日期」欄,因此計數每一個名字的日常發生如何使用時間序列列過濾數據幀

Date       Name 
"08/07/2017 10:10:58 0"   ABC 
"08/07/2017 10:21:55 0"   DBF 
"08/07/2017 11:21:55 0"   ABC 
"08/08/2017 12:00:58 0"   ABC 
"08/08/2017 12:10:58 0"   TTT 
"08/09/2017 11:10:58 0"   TAC 
"08/10/2017 11:20:58 0"   ABC 

例如發生:所以通過日期列日常迭代得出:

08/07/2017, ABC 2 
      DBF 1 

08/08/2017, ABC 1 

      TTT 1... till the last day 

我不知道我環路可以使用分組來幫助和counting.I已經使用如下代碼:

df['Date' ]=pd.to_datetime(df['Date'], format= '"%m/%d/%Y %H:%M:%S 0"') 
df.index=df['Date'] 
del df['Date'] 
df.index=df['Date'] 
print(df) 
df3=df.loc['2017-07-08 11:10:58':'2017-07-09 11:10:58'].value_counts 
print(df3) 

豪版本,我不斷收到回溯

回答

0

我想你需要SeriesGroupBy.value_counts

df['Date' ]= pd.to_datetime(df['Date'], format= '"%m/%d/%Y %H:%M:%S 0"') 
df = df.set_index(['Date']) 
df3 = df.loc['2017-08-07 11:10:58':'2017-08-09 11:10:58'] 

df3 = (df3.groupby(df3.index.date)['Name'] 
     .value_counts() 
     .rename_axis(('date','name')) 
     .reset_index(name='count')) 
print (df3) 
     date name count 
0 2017-08-07 ABC  1 
1 2017-08-08 ABC  1 
2 2017-08-08 TTT  1 
3 2017-08-09 TAC  1 
+0

它的工作很大!欣賞! – Bode