Pandas 分组排名日期时间
Pandas groupby rank date time
我对日期时间的排名有疑问。假设我有以下 table.
ID TIME
01 2018-07-11 11:12:20
01 2018-07-12 12:00:23
01 2018-07-13 12:00:00
02 2019-09-11 11:00:00
02 2019-09-12 12:00:00
并且我想添加另一列以按时间为每个 ID 和组对 table 进行排名。我用了
df['RANK'] = data.groupby('ID')['TIME'].rank(ascending=True)
但出现错误:
'NoneType' object is not callable
如果我将日期时间替换为数字,就可以了....有什么解决方案吗?
对我来说,将列转换为日期时间以避免您的错误。
data['TIME'] = pd.to_datetime(data['TIME'])
data['RANK'] = data.groupby('ID')['TIME'].rank(ascending=True)
print (data)
ID TIME RANK
0 1 2018-07-11 11:12:20 1.0
1 1 2018-07-12 12:00:23 2.0
2 1 2018-07-13 12:00:00 3.0
3 2 2019-09-11 11:00:00 1.0
4 2 2019-09-12 12:00:00 2.0
我对日期时间的排名有疑问。假设我有以下 table.
ID TIME
01 2018-07-11 11:12:20
01 2018-07-12 12:00:23
01 2018-07-13 12:00:00
02 2019-09-11 11:00:00
02 2019-09-12 12:00:00
并且我想添加另一列以按时间为每个 ID 和组对 table 进行排名。我用了
df['RANK'] = data.groupby('ID')['TIME'].rank(ascending=True)
但出现错误:
'NoneType' object is not callable
如果我将日期时间替换为数字,就可以了....有什么解决方案吗?
对我来说,将列转换为日期时间以避免您的错误。
data['TIME'] = pd.to_datetime(data['TIME'])
data['RANK'] = data.groupby('ID')['TIME'].rank(ascending=True)
print (data)
ID TIME RANK
0 1 2018-07-11 11:12:20 1.0
1 1 2018-07-12 12:00:23 2.0
2 1 2018-07-13 12:00:00 3.0
3 2 2019-09-11 11:00:00 1.0
4 2 2019-09-12 12:00:00 2.0