Python 如何使用datetime和number条目在此数据框中创建唯一id?

Python 如何使用datetime和number条目在此数据框中创建唯一id?,python,pandas,Python,Pandas,我有一个熊猫数据框,看起来像这样 miles dollars gallons date gal_cost mpg tank%_used day 0 253.2 21.37 11.138 2019-01-15 1.918657 22.732986 0.821993 Tuesday 1 211.9 22.24 11.239 2019-01-26 1.978824 18.853991 0.8294

我有一个熊猫数据框,看起来像这样

miles     dollars  gallons  date      gal_cost     mpg       tank%_used    day
0   253.2   21.37   11.138  2019-01-15  1.918657    22.732986   0.821993    Tuesday
1   211.9   22.24   11.239  2019-01-26  1.978824    18.853991   0.829446    Saturday
2   258.1   22.70   11.708  2019-02-02  1.938845    22.044756   0.864059    Saturday
3   223.0   22.24   11.713  2019-02-15  1.898745    19.038675   0.864428    Friday
我想创建一个名为“id”的新列,它对每个条目都是唯一的。对于df中的第一个条目,id为c0115201901,因为它来自df_c数据帧,日期为01 15 2019,是第一个条目

我知道我最终会做这样的事

miles     dollars  gallons  date      gal_cost     mpg       tank%_used    day
0   253.2   21.37   11.138  2019-01-15  1.918657    22.732986   0.821993    Tuesday
1   211.9   22.24   11.239  2019-01-26  1.978824    18.853991   0.829446    Saturday
2   258.1   22.70   11.708  2019-02-02  1.938845    22.044756   0.864059    Saturday
3   223.0   22.24   11.713  2019-02-15  1.898745    19.038675   0.864428    Friday
df_c=df_c.assign(id=('c'+df_c['date'])+??)

但是我想解析
df_c['date']
列来分别提取日、月和年的值。df_c['date']列是datetime64[ns]类型

另一个问题是,我想在id的末尾有一个计数器来计算日期的数字条目。例如,第一个条目为01,第二个条目为02,以此类推

我也有一个df_m数据帧,但我可以用该数据帧的不同字母重复该过程。

参考

日期可以像这样轻松提取

df_c['date'].dt.day + df_c['date'].dt.month df_c['date'].dt.year
提及

日期可以像这样轻松提取

df_c['date'].dt.day + df_c['date'].dt.month df_c['date'].dt.year

@anky_91刚刚解决了这个问题,很抱歉that@anky_91刚刚解决了这个问题,很抱歉,这非常有帮助,谢谢!你知道如何创建id的最后一部分吗?使用索引
df_c.index
,这样可以工作,但是有没有办法按日期排序项目?第一个条目是c0115201901,如果那天我有另一个条目,它将是c0115201902?
df_c['idx']=1
,然后
df_c['idx'].cumsum()
我最后使用了df_c['date'].dt.strftime(“%d-%b-%Y”),这非常有用,谢谢!你知道如何创建id的最后一部分吗?使用索引
df_c.index
,这样可以工作,但是有没有办法按日期排序项目?其中第一个条目是c0115201901,如果那天我有另一个条目,它将是c0115201902?
df_c['idx']=1
,然后
df_c['idx'].cumsum()
我最后使用了df_c['date'].dt.strftime(%d-%b-%Y”),效果很好