【发布时间】:2014-08-14 21:21:06
【问题描述】:
我有一个如下所示的数据框:
df = pd.DataFrame(index= pd.date_range('2014-01-01', periods=10))
df['date'] = df.index.map(lambda x: x.strftime('%d-%m-%Y'))
df['date'] = df.index
df['profit']= rand(10)
df['perf_period_id']=2
还有一个带有名为 fee_profit 的表的 sqlite3 数据库
fee_profit 有 4 个字段:
- id - 整数 - 主键
- perf_period_id - 整数
- 日期 - 日期
- 利润 - 真实
当我尝试将数据框写入数据库时(不显示数据库连接):
df.to_sql(name='fee_profit', index=False, con=db, if_exists='append')
我得到以下代码:
252 else:
253 data = [tuple(x) for x in frame.values.tolist()]
--> 254 cur.executemany(insert_query, data)
255
256
InterfaceError: Error binding parameter 0 - probably unsupported type.
没有传递主键(这可能是问题吗?)我把桌子弄得乱七八糟,看起来肯定是日期问题。尝试了在索引中传递日期的各种组合,也是字符串,一点用都没有。
知道我哪里出错了。在任何地方都找不到使用此方法的示例。
使用 Pandas 0.13.1 和 sqlite 3 2.6.0。数据库是通过django 1.6模型创建的
【问题讨论】:
-
你用的是什么版本的熊猫?你是如何创建
db的? -
@joris Pandas 0.13.1 和 sqlite 3 2.6.0 也为问题添加了版本