Python 创建新列并将其添加到sql数据库

Python 创建新列并将其添加到sql数据库,python,sql,pandas,Python,Sql,Pandas,我正在尝试将数据库中的所有时间戳从unixtime转换为格式化的、人类可读的时间。格式化后,它应该创建一个名为formatted\u 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('

我正在尝试将数据库中的所有时间戳从unixtime转换为格式化的、人类可读的时间。格式化后,它应该创建一个名为
formatted\u 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', con,     if_exists='append')

con.close()
代码正确地转换为正确的格式,但在df中的x的
循环中出现故障,我试图创建新列并将其添加到数据库中。我得到的错误是:

TypeError:(“'Series'对象不可调用”,“在索引unixtime'发生”)


如果您有任何帮助,我们将不胜感激。

您不需要将数据拉入pandas中,以便将unix时间转换为时间戳,因为它似乎支持日期字符串转换:

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'