加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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.我得到的错误是:

TypeError: (“‘Series’ object is not callable”,‘occurred at index unixtime’)

任何帮助,将不胜感激.

解决方法

您不需要将数据拉入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'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读