第四个条目导致df.to_sql失败

时间:2016-04-01 23:32:14

标签: python sql database oracle dataframe

我的数据帧很小。当我尝试将数据帧写入数据库时​​,我不断收到错误。我试图删除一些数据,并且能够成功获得3个条目,但第4个失败了。让我更清楚地展示一下正在发生的事情。

我拿一块我的数据框:

good_asmnt = ('LCC1', 'OQC1', 'QLC1' )
tiny_split = this_split [ this_split [ 'COURSE_NUMBER' ].isin ( good_asmnt )]
tiny_split

给了我:

-------------------------------
| | COURSE_NUMBER  | bin_var  |
-------------------------------
|0| LCC1           |    0     |
|1| OQC1           |    1     |
|2| QLC1           |    1     |
-------------------------------

然后我跑:

from sqlalchemy import create_engine
engine = create_engine('oracle://wgubi:w3d0stats@192.168.52.13:1522/BIWH')
tiny_split.to_sql('mdb_model_out', engine, if_exists='replace')

签入数据库显示表中有正确的数据。

现在我添加一个条目:

good_asmnt = ('LCC1', 'OQC1', 'QLC1', 'MYC1' )
tiny_split = this_split [ this_split [ 'COURSE_NUMBER' ].isin ( good_asmnt )]
tiny_split

给了我:

-------------------------------
| | COURSE_NUMBER  | bin_var  |
-------------------------------
|0| LCC1           |    0     |
|1| OQC1           |    1     |
|2| QLC1           |    1     |
|3| MYC1           |    0     |
-------------------------------

然后我跑:

from sqlalchemy import create_engine
engine = create_engine('oracle://wgubi:w3d0stats@192.168.52.13:1522/BIWH')
tiny_split.to_sql('mdb_model_out', engine, if_exists='replace')

并收到错误 -

  

TypeError:期待字符串,unicode或缓冲区对象

在数据库中,表就在那里,所有数据都消失了。

我想要写入数据库的351个条目,并且不想一次移动3个。

1 个答案:

答案 0 :(得分:0)

一位朋友看了一眼,然后想出了一个决议。

第1部分 - 一个列名称全部为大写,另一个小写名称。她把它们都做成了小写。

第2部分 - 一列是数字,但是是数据框中的一个对象。她将此列转换为float64。

to_sql现在可以运行了。我没有任何解释为什么它适用于几行,或者为什么大写对3个以上的条目产生了影响。