<p>您可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.floor.html" rel="nofollow noreferrer">^{<cd1>}</a>:</p>
<pre><code>(df.groupby([df['TimeCreated'].dt.floor('d'),
'Institution_Name'])
[['EventID']].count()
.add_suffix('_count')
.sort_values(['TimeCreated', 'Institution_Name'], ascending=[True, False])
.reset_index()
)
</code></pre>
<p>输出:</p>
<pre><code> TimeCreated Institution_Name EventID_count
0 2021-03-22 H2 7
1 2021-03-22 H1 1
2 2021-03-23 H9 1
3 2021-03-23 H8 2
4 2021-03-23 H7 1
5 2021-03-23 H6 1
6 2021-03-23 H5 1
7 2021-03-23 H4 1
8 2021-03-23 H3 1
9 2021-03-23 H2 2
10 2021-03-23 H10 1
11 2021-03-23 H1 1
</code></pre>
<p>您最初的尝试不起作用,因为Grouper不知道在哪里可以找到您的日期(默认情况下,它使用索引)。这里有两种解决方法</p>
<p>定义列名:</p>
<pre><code>(df.groupby([pd.Grouper(freq='1D', key='TimeCreated'),
'Institution_Name'])
[['EventID']].count()
.add_suffix('_count')
.sort_values(['TimeCreated', 'Institution_Name'], ascending=[True, False])
.reset_index()
)
</code></pre>
<p>将列用作索引:</p>
<pre><code>(df.set_index('TimeCreated')
.groupby([pd.Grouper(freq='1D'),
'Institution_Name'])
[['EventID']].count()
.add_suffix('_count')
.sort_values(['TimeCreated', 'Institution_Name'], ascending=[True, False])
.reset_index()
)
</code></pre>