如何使用时间序列列过滤数据帧
问题描述:
我在下表中有一个名为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)
豪版本,我不断收到回溯
答
我想你需要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
它的工作很大!欣赏! – Bode