首页 > 解决方案 > 如何标准化熊猫中的日期

问题描述

我有一个日期类型的 pandas 列,范围从 2015-01-01 到 2019-01-01,我想创建一个新列,可以将我的值标准化为单个数字

我有一个如下所示的熊猫专栏

A

2015-01-01
2015-02-01
2015-03-01
...
...
2019-12-01

我想要一个像下面这样的新专栏

A                   B

2015-01-01          0
2015-02-01          1
2015-03-01          2
2015-05-01.         4
...
2019-11-01.         46
2019-12-01          47

标签: pythonpandasnumpy

解决方案


对所有值使用Series.asfreqwith ,然后按 crate range column by和 last use :DatetimeIndexDataFrame.assignSeries.map

s = df.set_index('A').asfreq('MS').assign(new=lambda x: np.arange(len(x)))['new']
df['B'] = df['A'].map(s) 
print (df)
           A   B
0 2015-01-01   0
1 2015-02-01   1
2 2015-03-01   2
3 2019-12-01  59

详情

print (s)
A
2015-01-01     0
2015-02-01     1
2015-03-01     2
2015-04-01     3
2015-05-01     4
2015-06-01     5
2015-07-01     6
...
...
...
2019-06-01    53
2019-07-01    54
2019-08-01    55
2019-09-01    56
2019-10-01    57
2019-11-01    58
2019-12-01    59
Freq: MS, Name: new, dtype: int32

推荐阅读