pandas 0.23 - Panel.to_sql()

pandas.Panel.to_sql




pandas

pandas.Panel.to_sql

Panel.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None) [source]

एक DataFrame में SQL डेटाबेस में संग्रहीत रिकॉर्ड लिखें।

SQLAlchemy [R22] द्वारा समर्थित डेटाबेस समर्थित हैं। टेबल्स को नया बनाया जा सकता है, उन्हें जोड़ा या अधिलेखित किया जा सकता है।

पैरामीटर:

नाम : स्ट्रिंग

SQL टेबल का नाम।

con : sqlalchemy.engine.Engine या sqlite3.Connection

SQLAlchemy का उपयोग करना उस लाइब्रेरी द्वारा समर्थित किसी भी DB का उपयोग करना संभव बनाता है। Sqlite3.Connection वस्तुओं के लिए विरासत समर्थन प्रदान किया जाता है।

स्कीमा : स्ट्रिंग, वैकल्पिक

स्कीमा निर्दिष्ट करें (यदि डेटाबेस स्वाद इस का समर्थन करता है)। यदि कोई नहीं है, तो डिफ़ॉल्ट स्कीमा का उपयोग करें।

if_exists : {'विफल', 'प्रतिस्थापित', 'परिशिष्ट'}, डिफ़ॉल्ट 'विफल'

यदि तालिका पहले से मौजूद है तो कैसे व्यवहार करें।

  • विफल: एक मान बढ़ाएँ।
  • बदलें: नए मान डालने से पहले तालिका को छोड़ दें।
  • परिशिष्ट: मौजूदा तालिका में नए मान डालें।

सूचकांक : बूलियन, डिफ़ॉल्ट सही

कॉलम के रूप में DataFrame इंडेक्स लिखें। तालिका में स्तंभ नाम के रूप में index_label उपयोग करता है।

index_label : स्ट्रिंग या अनुक्रम, डिफ़ॉल्ट कोई नहीं

इंडेक्स कॉलम के लिए कॉलम लेबल। यदि कोई नहीं दिया गया है (डिफ़ॉल्ट) और index ट्रू है, तो इंडेक्स नामों का उपयोग किया जाता है। यदि DataFrame MultiIndex का उपयोग करता है तो एक अनुक्रम दिया जाना चाहिए।

chunksize : int, वैकल्पिक

पंक्तियों को एक समय में इस आकार के बैचों में लिखा जाएगा। डिफ़ॉल्ट रूप से, सभी पंक्तियों को एक बार में लिखा जाएगा।

dtype : तानाशाही , वैकल्पिक

कॉलम के लिए डेटाटाइप निर्दिष्ट करना। कुंजी स्तंभ नाम होना चाहिए और मान SQLAlchemy प्रकार या स्ट्रिंग्स sqlite3 विरासत मोड के लिए होना चाहिए।

जन्म देती है:

ValueError

जब तालिका पहले से मौजूद है और if_exists 'विफल' (डिफ़ॉल्ट) है।

यह भी देखें

pandas.read_sql
एक तालिका से एक DataFrame पढ़ें

संदर्भ

[R22] ( 1 , 2 ) http://docs.sqlalchemy.org
[R23] https://www.python.org/dev/peps/pep-0249/

उदाहरण

इन-मेमोरी SQLite डेटाबेस बनाएँ।

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite://', echo=False)

3 पंक्तियों के साथ खरोंच से एक तालिका बनाएं।

>>> df = pd.DataFrame({'name' : ['User 1', 'User 2', 'User 3']})
>>> df
     name
0  User 1
1  User 2
2  User 3
>>> df.to_sql('users', con=engine)
>>> engine.execute("SELECT * FROM users").fetchall()
[(0, 'User 1'), (1, 'User 2'), (2, 'User 3')]
>>> df1 = pd.DataFrame({'name' : ['User 4', 'User 5']})
>>> df1.to_sql('users', con=engine, if_exists='append')
>>> engine.execute("SELECT * FROM users").fetchall()
[(0, 'User 1'), (1, 'User 2'), (2, 'User 3'),
 (0, 'User 4'), (1, 'User 5')]

बस df1 साथ तालिका को अधिलेखित करें।

>>> df1.to_sql('users', con=engine, if_exists='replace',
...            index_label='id')
>>> engine.execute("SELECT * FROM users").fetchall()
[(0, 'User 4'), (1, 'User 5')]

Dtype निर्दिष्ट करें (विशेष रूप से अनुपलब्ध मानों के साथ पूर्णांक के लिए उपयोगी)। ध्यान दें कि जब पांडा डेटा को फ्लोटिंग पॉइंट के रूप में संग्रहीत करने के लिए मजबूर किया जाता है, तो डेटाबेस अशक्त पूर्णांकों का समर्थन करता है। जब पायथन के साथ डेटा प्राप्त करते हैं, तो हम पूर्णांक स्केलर वापस प्राप्त करते हैं।

>>> df = pd.DataFrame({"A": [1, None, 2]})
>>> df
     A
0  1.0
1  NaN
2  2.0
>>> from sqlalchemy.types import Integer
>>> df.to_sql('integers', con=engine, index=False,
...           dtype={"A": Integer()})
>>> engine.execute("SELECT * FROM integers").fetchall()
[(1,), (None,), (2,)]