python - 如何标准化熊猫中的日期
问题描述
我有一个日期类型的 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
解决方案
对所有值使用Series.asfreq
with ,然后按 crate range column by和 last use :DatetimeIndex
DataFrame.assign
Series.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
推荐阅读
- ethereum - 无法读取属性错误(无法调用函数 getNum)
- github - 与 GitHub (gulp) Netlify 集成的问题
- html - Vuejs index.html标签不尊重相对路径
- reactjs - React - 为什么 addEventListener 不起作用?
- mysql - 使用 Knex 和 MySQL 执行多个语句(变量和迁移)
- amazon-web-services - 在 Powershell 中,如何创建将 AWS IAM 授权添加到现有 API Gateway 终端节点的 PatchOperation?
- javascript - 从对象键创建 JavaScript 数组
- javascript - 在摇杆容器上运行的 puppeteer 的登录凭据
- r - 如何制作阻塞矩阵?
- c# - 使用 LoadLibrary 到 P/Invoke 方法时,多线程模拟中的 Random AccessViolationException