python - 熊猫更改列日期格式
问题描述
我在熊猫数据框中有如下列:
0 2018-04-06
1 2018-04-06
2 2018-04-09
3 2018-04-19
4 2018-04-19
5 2018-04-17
我想将此列转换为 yyyy/mm/dd ,为此我编写了如下代码:
def change_date_format(x):
if x != 'nan' and x != '' and x != ' ' and x != 0:
x = parse(x, dayfirst=True).strftime("%Y-%m-%d")
return x
else:
return ''
read4['Column Name'] = read4['Column Name'].apply(lambda x : change_date_format(x) )
但它的转换如下:
2018-06-04
2018-06-04
2018-09-04
2018-04-19
2018-04-19
2018-04-17
理想情况下应该是:
2018-04-06
2018-04-06
2018-04-09
2018-04-19
2018-04-19
2018-04-17
我如何强制它按上述方式工作。基本上它也应该考虑输入并且取决于它应该工作。
解决方案
我认为需要to_datetime
使用参数errors='coerce'
将不可解析的值转换为NaT
, thenstrftime
和 last replace
:
read4['Column Name'] = (pd.to_datetime(read4['Column Name'], errors='coerce')
.dt.strftime("%Y-%m-%d")
.replace('NaT', ''))
Column Name
0 2018-04-06
1 2018-04-06
2 2018-04-09
3 2018-04-19
4 2018-04-19
5 2018-04-17
推荐阅读
- python - Scrapy:仅关注外部链接
- php - Laravel 背包,在列中显示地址(Json)
- javascript - 有没有什么地方 defaultChecked 比仅仅引用 checked 更有利?
- bash - 在 Bash 中将变量输出到 CSV 文件的帐户
- reactjs - React - 链接重定向到项目但不刷新组件
- php - 网络服务器不监听端口
- ruby-on-rails - Nginx 和乘客根指令不适用于 Capistrano 3。当前版本的符号链接中断应用程序
- c# - 如果在应用程序资源中设置,为什么网格背景颜色会覆盖整个窗口?
- google-chrome-extension - Chrome .webRequest 未按预期触发
- weblogic12c - Weblogic服务器中的Alfresco 5.2.4