我有以下数据框
import pandas as pd
tmp = pd.DataFrame({'date':['2018-08-31','2018-07-30','2018-07-30','2018-07-31']})
我想在tmp
数据框中创建一个新列,该列将作为递增索引,从1开始为最小date
,并且随着日期的增加而增加。
输出数据框应如下所示:
date idx
0 2018-08-31 3
1 2018-07-30 1
2 2018-07-30 1
3 2018-07-31 2
有什么想法吗?
答案 0 :(得分:2)
将列转换为日期时间,使用Series.rank
并转换为整数:
tmp['date'] = pd.to_datetime(tmp['date'])
tmp['idx'] = tmp['date'].rank(method='dense').astype(int)
print (tmp)
date idx
0 2018-08-31 3
1 2018-07-30 1
2 2018-07-30 1
3 2018-07-31 2