残念ながらそうです。現時点sqlite
では、によってサポートされている唯一の「フレーバー」write_frame
です。https://github.com/pydata/pandas/blob/master/pandas/io/sql.py#L155を参照してください
def write_frame(frame, name=None, con=None, flavor='sqlite'):
"""
Write records stored in a DataFrame to SQLite. The index will currently be
dropped
"""
if flavor == 'sqlite':
schema = get_sqlite_schema(frame, name)
else:
raise NotImplementedError
ただし、単純なものを書くのはwrite_frame
かなり簡単なはずです。たとえば、次のようなものが機能する可能性があります(テストされていません!):
import pymssql
conn = pymssql.connect(host='SQL01', user='user', password='password', database='mydatabase')
cur = conn.cursor()
# frame is your dataframe
wildcards = ','.join(['?'] * len(frame.columns))
data = [tuple(x) for x in frame.values]
table_name = 'Table'
cur.executemany("INSERT INTO %s VALUES(%s)" % (table_name, wildcards), data)
conn.commit()