如何在熊猫中使用groupby创建索引列

时间:2019-10-14 12:12:57

标签: python python-3.x pandas

我有以下数据框

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

有什么想法吗?

1 个答案:

答案 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
相关问题