अपडेट करें :पांडा 0.15 से शुरू, to_sql
NaN
writing लिखने का समर्थन करता है मान (उन्हें NULL
. के रूप में लिखा जाएगा) डेटाबेस में), इसलिए नीचे वर्णित समाधान की अब और आवश्यकता नहीं होनी चाहिए (देखें https:// github.com/pydata/pandas/pull/8208
).
Pandas 0.15 आने वाले अक्टूबर में जारी किया जाएगा, और इस सुविधा को विकास संस्करण में मर्ज कर दिया गया है।
यह संभवत:NaN
. के कारण है आपकी तालिका में मान, और यह इस समय एक ज्ञात कमी है कि पांडा sql फ़ंक्शन NaN को अच्छी तरह से संभाल नहीं पाते हैं (https://github.com/pydata/pandas/issues/2754
, https://github.com/pydata/pandas/issues/4199
)
इस समय एक वैकल्पिक हल के रूप में (पंडों के 0.14.1 और उससे कम संस्करणों के लिए), आप मैन्युअल रूप से nan
को रूपांतरित कर सकते हैं इसके साथ कोई नहीं के मान:
df2 = df.astype(object).where(pd.notnull(df), None)
और फिर डेटाफ्रेम को एसक्यूएल में लिखें। हालांकि यह सभी कॉलम को ऑब्जेक्ट dtype में परिवर्तित करता है। इस वजह से, आपको मूल डेटाफ़्रेम के आधार पर डेटाबेस तालिका बनानी होगी। उदाहरण के लिए यदि आपकी पहली पंक्ति में NaN
. नहीं है एस:
df[:1].to_sql('table_name', con)
df2[1:].to_sql('table_name', con, if_exists='append')