如何在python中将日期从YYYYMMDD更改为YYDDMMYY

2024-04-26 06:35:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个MySQL数据库,其中有一列存储了日期。现在的要求是我需要用YY替换dd。我想用python(Pandas)来做这个

例如,我的日期是2032-11-16,我想要2016-11-32。你知道吗

我的方法如下所示

df = pd.read_csv('p1006_freight_rates.csv')
df['year'] = zip(*df['date'].apply(lambda x: (x[:4], x[5:])))

上面的方法是绝对错误的,我也尝试过字符串替换,但也有一些问题。你知道吗

同时请告诉我如何在mysql中保存更新。你知道吗


Tags: csv方法数据库pandasdfreadmysqlzip
3条回答

如果你有一个日期字符串,你知道它的格式是YYDD-MM-YY,那么就用这个:

new_str = old_str;
new_str[2:4] = old_str[8:10]
new_str[8:10] = old_str[2:4]

简单而直接的方法如下:

xx = [
    '2032-11-16',
    '2011-22-33'
]
df = pd.DataFrame(xx,columns=['date'])
df['new_date'] = df.date.map(lambda x:x[:2]+x[-2:]+x[4:8]+x[2:4])
df

^{}模块可以帮助您:

datetime.datetime.strptime(date_string, format1).strftime(format2)

datetime.datetime.strptime("2013-1-25", '%Y-%m-%d').strftime('%m/%d/%y')

打印"01/25/13"。你知道吗

如果你不能接受前导零,试试这个:

dt = datetime.datetime.strptime("2013-1-25", '%Y-%m-%d')
print '{0}/{1}/{2:02}'.format(dt.month, dt.day, dt.year % 100)

它打印"1/25/13"。你知道吗

编辑:这可能不适用于所有平台:

datetime.datetime.strptime("2013-1-25", '%Y-%m-%d').strftime('%-m/%d/%y')

相关问题 更多 >