<p>以下是我使用熊猫的答案。假设您有csv文件中的数据,我们可以执行以下操作:</p>
<pre><code>import pandas as pd
df = pd.read_csv('Sample.csv')
gdf = pd.DataFrame()
#Change to datetime for rank operation
df.Date = pd.to_datetime(df.Date)
df = df.sort_values('Date')
# Rank by date and do a dense rank to avoid same date as same rank
gdf['Rank'] = df.groupby('ID')['Date'].rank(method='dense')
result = df.join(gdf)
# Sort to match original order of table
result = result.sort_index()
print(result)
ID Location Date Rank
0 76 School 2018-04-12 1.0
1 111 PostOffice 2018-04-15 1.0
2 112 School 2018-04-10 2.0
3 324 School 2018-02-10 1.0
4 22 Library 2018-04-12 1.0
5 19 Library 2018-04-13 1.0
6 17 PostOffice 2018-05-11 1.0
7 76 Library 2018-04-25 2.0
8 19 Library 2019-04-27 2.0
9 112 School 2018-03-23 1.0
10 76 PostOffice 2018-04-27 3.0
11 113 IceCream 2018-05-23 1.0
12 19 School 2019-07-23 3.0
13 112 Library 2018-03-23 1.0
14 76 IceCream 2019-06-04 4.0
15 112 Fountain 2019-06-10 3.0
</code></pre>
<p>注意:我认为这一行的结果中有一个小错误:</p>
<pre><code>19 School 7/23/2019 1
</code></pre>