2017-10-09 5 views
0

아래 테이블에 "date"및 "Name"열과 함께 df라는 데이터 프레임이 있습니다. 나는 "이름"열 함께 "날짜"열에서 하루에 따라서 예를 들어시계열을 사용하여 데이터 프레임을 필터링하는 방법

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 

나는 그룹에서하는 데 사용할 수있는 루프와 세고는 다음과 같은 코드를 사용하는 것을 모르는 :

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