Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पायथन पांडा NaN मानों के साथ sql को लिखते हैं

अपडेट करें :पांडा 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')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClearDB Heroku डेटाबेस से रिमोट कनेक्ट करें

  2. जब उपयोगकर्ता अपना ब्राउज़र बंद करता है तो mysql तालिका से जानकारी हटा दें

  3. Magento तालिका बिक्री_फ्लैट_ऑर्डर फ़ील्ड रक्षा_कोड स्पष्टीकरण

  4. MySQL में परिणाम रैंकिंग करते समय मैं संबंधों को कैसे संभाल सकता हूं?

  5. Mysql और java में टाइमज़ोन विसंगति