python – pandas创建新列并将其添加到sql数据库
发布时间:2020-12-20 13:18:09 所属栏目:Python 来源:网络整理
导读:我试图将我的数据库中的所有时间戳从unixtime转换为格式化的,人类可读的时间.格式化之后,它应该创建一个名为formatted_date的新列,然后将该列写回我连接的SQL数据库. 这是代码: import pandas as pdimport numpy as npimport statsmodels.api as smfrom pat
我试图将我的数据库中的所有时间戳从unixtime转换为格式化的,人类可读的时间.格式化之后,它应该创建一个名为formatted_date的新列,然后将该列写回我连接的SQL数据库.
这是代码: import pandas as pd import numpy as np import statsmodels.api as sm from patsy import dmatrices import sqlite3 import datetime con = sqlite3.connect('file_name') df = pd.read_sql_query('SELECT * FROM table',con,chunksize=1000) def format_date(x): format_date = x.unixtime = pd.to_datetime(x.unixtime,unit='s') return format_date for x in df: x['formatted_date'] = x.apply(format_date(x)).tosql('bitcoin',if_exists='append') con.close() 代码正确转换为正确的格式,但在df循环中的for x期间发生故障,我尝试创建新列并将其添加到db.我得到的错误是:
任何帮助,将不胜感激. 解决方法
您不需要将数据拉入pandas以将unix时间转换为时间戳,因为
sqlite似乎支持datetring转换:
Compute the date and time given a unix timestamp 1092941466,and compensate for your local timezone. SELECT datetime(1092941466,'unixepoch','localtime'); 但是如果你仍然需要,你可以将unix时间戳转换为日期字符串,如下所示: import datetime unix_ts = 1546732800.0 dt = datetime.datetime.fromtimestamp(unix_ts) datetime.datetime.strftime(dt,'%Y-%m-%d') '2019-01-05' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |