Skip to content

Commit 50d2c13

Browse files
committed
Merge branch 'io_sql_one_column' of https://github.com/stonebig/pandas into stonebig-io_sql_one_column
2 parents 88d2cb7 + 08397df commit 50d2c13

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

pandas/io/sql.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,11 @@ def _write_sqlite(frame, table, names, cur):
228228
wildcards = ','.join(['?'] * len(names))
229229
insert_query = 'INSERT INTO %s (%s) VALUES (%s)' % (
230230
table, col_names, wildcards)
231-
data = [tuple(x) for x in frame.values]
231+
# pandas types are badly handled if there is only 1 column ( Issue #3628 )
232+
if not len(frame.columns )==1 :
233+
data = [tuple(x) for x in frame.values]
234+
else :
235+
data = [tuple(x) for x in frame.values.tolist()]
232236
cur.executemany(insert_query, data)
233237

234238
def _write_mysql(frame, table, names, cur):

pandas/io/tests/test_sql.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,18 @@ def test_keyword_as_column_names(self):
219219
df = DataFrame({'From':np.ones(5)})
220220
sql.write_frame(df, con = self.db, name = 'testkeywords')
221221

222+
def test_onecolumn_of_integer(self):
223+
'''
224+
a column_of_integers dataframe should transfer well to sql
225+
'''
226+
mono_df=DataFrame([1 , 2], columns=['c0'])
227+
sql.write_frame(mono_df, con = self.db, name = 'mono_df')
228+
# computing the sum via sql
229+
con_x=self.db
230+
the_sum=sum([my_c0[0] for my_c0 in con_x.execute("select * from mono_df")])
231+
# it should not fail, and gives 3 ( Issue #3628 )
232+
self.assertEqual(the_sum , 3)
233+
222234

223235
class TestMySQL(unittest.TestCase):
224236

0 commit comments

Comments
 (0)