python - 在数据框中更改逗号分隔的日期格式 20,190,927?
问题描述
我有一个日期列为 20,190,927 的数据框,这意味着:2019/09/27。我需要将格式更改为 YYYY/MM/DD 或类似的东西。
我想像这样手动完成:
x = df_all['CREATION_DATE'].str[:2] + df_all['CREATION_DATE'].str[3:5] + "-" + \
df_all['CREATION_DATE'].str[5] + df_all['CREATION_DATE'].str[7] + "-" + df_all['CREATION_DATE'].str[8:]
print(x)
这样做更有创意的方法是什么?可以用 datetime 模块完成吗?
解决方案
我相信这就是你想要的。首先用空替换,
yyyymmdd 格式,然后通过传递正确的格式将其更改为datetime
with 。pd.to_datetime
一个班轮:
df['dates'] = pd.to_datetime(df['dates'].str.replace(',',''),format='%Y%m%d')
完整解释:
import pandas as pd
a = {'dates':['20,190,927','20,191,114'],'values':[1,2]}
df = pd.DataFrame(a)
print(df)
输出,这是原始数据框的样子:
dates values
0 20,190,927 1
1 20,191,114 2
df['dates'] = df['dates'].str.replace(',','')
df['dates'] = pd.to_datetime(df['dates'],format='%Y%m%d')
print(df)
print(df.info())
新格式化的数据框的输出:
dates values
0 2019-09-27 1
1 2019-11-14 2
打印.info()
以确保我们具有正确的格式:
dates 2 non-null datetime64[ns]
values 2 non-null int64
推荐阅读
- python - 如何查询以便显示每个实例的字段而不是实际实例
- node.js - 是否可以在 yargs 中定义相同的命令两次,但使用不同的选项/位置?
- r - gt表红绿灯系统的条件格式
- selectize.js - 选择减少下拉菜单的宽度,使选项难以辨认
- php - Undefined method 'notify'. intelephense(1013)
- windows - 使用 NdisSendPackets 时释放缓冲区的正确方法?(NDIS 5.0)
- javascript - 编辑数据时显示/隐藏表单
- javascript - react中如何将实时数据整合到d3图表中
- grails - 对日期字段使用 Datepicker
- c++ - 如何构建特定函数调用的图表?