首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据从csv传递到SQL时修复类型错误

将数据从csv传递到SQL时修复类型错误
EN

Stack Overflow用户
提问于 2017-09-14 11:48:19
回答 1查看 271关注 0票数 2

场景:根据前面的问题(Removing the timestamp from a datetime in pandas dataframe),我有一段代码,将excel中的数据读入到熊猫数据中,并使用命令dataframe.to_sql将数据插入给定的SQL数据库。

问题:由于我的日期是以美国格式(mm/dd/yyyy)检索的,而且我的数据库是国际格式的(dd/mm/yyyy),所以我在试图将数据上传到SQL时遇到一个类型错误。

我已经尝试过的内容:--我尝试了上一个问题中给出的建议,并以这种方式运行数据更改,但是当我试图上传到SQL时,我得到了错误。

我目前正在使用的行:

代码语言:javascript
运行
复制
fnl['Date'] = pd.to_datetime(fnl['Maturity'], errors='coerce')

它允许运行代码,但在SQL中会产生问题。

我也试过了:

代码语言:javascript
运行
复制
fnl['Date'] = pd.to_datetime(fnl['Date'], format='%m/%d/%Y', errors:'coerce')

代码语言:javascript
运行
复制
fnl['Date'] = pd.to_datetime(fnl['Date'], format='%m/%d/%Y')

还是没有成功。

在代码开始时,我将所有编码更改为utf-8,所以我看不出问题的所在。

问题:如何解决这个问题?

数据示例:

代码语言:javascript
运行
复制
Date
1/15/2023
1/15/2023
6/30/2023
6/30/2023
8/1/2022
8/1/2022
7/25/2022
7/25/2022
7/19/2024
7/13/2022
7/13/2022
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-14 11:57:28

如果您的Date列以国际格式返回日期,则需要在转换为日期时间时反映这一点。

代码语言:javascript
运行
复制
fnl['Date'] = pd.to_datetime(fnl['Date'], format='%m/%d/%Y', errors='coerce')

您需要在源中指定格式,这样才能正确地进行转换。

如果要将日期时间转换为%m/%d/%Y格式的字符串,请使用.dt.strftime函数:

代码语言:javascript
运行
复制
fnl['DateString'] = fnl['Date'].dt.strftime('%d/%m/%Y')
代码语言:javascript
运行
复制
s = pd.to_datetime(df['Date'], format='%m/%d/%Y', errors='coerce')
s

0    2023-01-15
1    2023-01-15
2    2023-06-30
3    2023-06-30
4    2022-08-01
5    2022-08-01
6    2022-07-25
7    2022-07-25
8    2024-07-19
9    2022-07-13
10   2022-07-13
Name: Date, dtype: datetime64[ns]

s = s.dt.strftime('%d/%m/%Y')
s

0     15/01/2023
1     15/01/2023
2     30/06/2023
3     30/06/2023
4     01/08/2022
5     01/08/2022
6     25/07/2022
7     25/07/2022
8     19/07/2024
9     13/07/2022
10    13/07/2022
Name: Date, dtype: object
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46218306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档