python实现将中文日期转换为数字日期

1、说明

这篇文章是帮一个群友解答的问题。

他有一个需求,就是对于日期的录入都是中文形式的,需要转换为数字形式的。由于python库中没有函数直接进行转换,因此我写了本篇文章。

2、测试源数据如下

3、代码如下

df = pd.read_excel(r"C:\Users\黄伟\Desktop\chinese_english.xlsx")
display(df)

def func(x):
  year = x.split("年")[0]
  month = x.split("年")[1].split("月")[0]
  day = x.split("年")[1].split("月")[1].split("日")[0]
  if len(day) >= 3:
    day = day[0] + day[2]
  chinese_english = dict(零=0,一=1,二=2,三=3,四=4,五=5,六=6,七=7,八=8,九=9,十=10)
  year = "".join(str(chinese_english[i]) for i in year)
  month = "".join(str(chinese_english[i]) for i in month)
  day = "".join(str(chinese_english[i]) for i in day)
  if len(month) == 3:
    month = month[0] + month[2]
  if len(day) == 3:
    day = day[0] + day[2]
  final_date = year + "." + month + "." + day
  return final_date

df["final_date"] = df["日期"].apply(func)
display(df)

结果如下:

补充知识:python 格式化时间含中文报错

报错内容

UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence:

word = (datetime.today() + timedelta(days=keyDate.get(k, 0))).strftime('%Y年%m月%d日')

将上述代码更改为:

word = (datetime.today() + timedelta(days=keyDate.get(k, 0))).strftime('%Y{y}%m{m}%d{d}').format(y='年',m='月',d='日')

即可。

以上这篇python实现将中文日期转换为数字日期就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python中有关时间日期格式转换问题

    每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1.字符串转化为日期 str->date import datetime date_str = '2006-01-03' date_ = datetime.datetime.strptime(date_str,'%Y-&m-%d') 这是单个字符串的转化,其中"%Y-%m-%d"表示日期字符串的格式,若date_str='2006/1/3',则可写为"%Y/%

  • python转化excel数字日期为标准日期操作

    伙伴遇到一个关于excel导入数据到python中,日期变成数字而不是日期格式的问题.第一反应这个数字应该是excel里面的时间戳类似的,所以我就实验增加一天是不是对应的数字就加1.最后证明了我的想法,这样就可以倒推excel里面的数字日期是从那一年开始计数的. 我们先看一下excel本身打开数据的样子: 我们再看看python直接导入后日期的样子: 那我们的目标就是将字段列名的日期数据替换成标准的日期格式,具体的思路是: 1.先用excel实验2018-11-02对应的日期时间戳是43406.

  • Python日期格式和字符串格式相互转换的方法

    由字符串格式转化为日期格式的函数为: datetime.datetime.strptime() 由日期格式转化为字符串格式的函数为: datetime.datetime.strftime() # encoding: utf-8 import datetime day = datetime.datetime.strptime('2020-2-18 10:54:45', '%Y-%m-%d %H:%M:%S') print(day) print type(day) day = datetime.da

  • python实现字符串和日期相互转换的方法

    本文实例讲述了python实现字符串和日期相互转换的方法.分享给大家供大家参考.具体分析如下: 这里用的分别是time和datetime函数 ''' @author: jiangqh ''' import time,datetime # date to str print time.strftime("%Y-%m-%d %X", time.localtime()) #str to date t = time.strptime("2009 - 08 - 08", &q

  • python实现将中文日期转换为数字日期

    1.说明 这篇文章是帮一个群友解答的问题. 他有一个需求,就是对于日期的录入都是中文形式的,需要转换为数字形式的.由于python库中没有函数直接进行转换,因此我写了本篇文章. 2.测试源数据如下 3.代码如下 df = pd.read_excel(r"C:\Users\黄伟\Desktop\chinese_english.xlsx") display(df) def func(x): year = x.split("年")[0] month = x.split(&

  • 解决python 读取excel时 日期变成数字并加.0的问题

    excel 文件内容如下: 读取excel内容: import xlrd from datetime import datetime from xlrd import xldate_as_datetime, xldate_as_tuple filename = r'C:\Users\Administrator\Desktop\niceloo\10月\流水.xlsx' rbook = xlrd.open_workbook(filename) table = rbook.sheets()[0] ro

  • Python时间序列缺失值的处理方法(日期缺失填充)

    前言 因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小结以供之后同行们参考指正. 时间序列缺失值处理 一.编程前准备 收集时间序列数据,相信看这篇博客的各位已经完成了这步. 需要安装pandas模块,并利用Python的Lib文件夹自带的datetime库(当时我因为在Pycharm环境中没看到datetime模块又去安装了DateTime模块并看了DateTime英

  • python 正则表达式获取字符串中所有的日期和时间

    提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损失95万元." text1 = "2015/12/28下达行政处罚决定书" text2 = "2015年8月发生一起物体打击事故" # 对文本处理一下 # 2015-8-31 2015-12-28 text = text.replace("年&quo

  • 正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式

    本文实例讲述了正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head><title>正则表达式</title></head> <body> <a href="./">返回列表</a> <form action="<? echo $PHP_SELF; ?&

  • MySql判断汉字、日期、数字的具体函数

    几个平常用的mysql函数,MySql判断汉字.日期.数字的具体函数分享给大家,具体内容如下 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 DROP FUNCTION IF EXISTS fc_is_hanzi; CREATE FUNCTION fc_is_hanzi( p_str VARCHAR(1024) ) RETURNS int(11) NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT '检查字符串是否为汉字' BEGIN /*检查字

  • js将long日期格式转换为标准日期格式实现思路

    js将long日期格式转换为标准日期格式 复制代码 代码如下: <script language="javascript"> //扩展Date的format方法 Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), &q

  • Java实现将数字日期翻译成英文单词的工具类实例

    本文实例讲述了Java实现将数字日期翻译成英文单词的工具类.分享给大家供大家参考,具体如下: package com.sunyard.etp.ag.util; import java.math.BigDecimal; import java.util.Arrays; public class DateEngUtil { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated meth

  • Python根据当前日期取去年同星期日期

    业务的开发时候有一个需求,需要对比当前时间段和去年同星期的时间段的数据,例如当前时间是2019-04-11,是今年的第十五周的周四,如何去取去年的第十五周的周四呢? 查了好多资料没有对应的处理方法,于是自己写了这个方法,如果您有更好的方法,可以留言. python的datetime模块有个查看日历的方法 date_week_info = datetime.datetime.strptime("2019-04-11", "%Y-%m-%d").isocalendar(

随机推荐