pandas 0.23 - 29. Comparison with SQL

एसक्यूएल के साथ तुलना




pandas

एसक्यूएल के साथ तुलना

चूंकि कई संभावित पांडा उपयोगकर्ताओं की SQL साथ कुछ परिचितता है, इसलिए यह पृष्ठ कुछ उदाहरणों को प्रदान करने के लिए है कि पांडा का उपयोग करके विभिन्न SQL संचालन कैसे किए जाएंगे।

यदि आप पांडा के लिए नए हैं, तो आप लाइब्रेरी से खुद को परिचित करने के लिए पहले 10 मिनट पंडों के माध्यम से पढ़ना चाह सकते हैं।

जैसा कि प्रथागत है, हम निम्नानुसार पांडा और न्यूमपी आयात करते हैं:

In [1]: import pandas as pd

In [2]: import numpy as np

अधिकांश उदाहरण पांडा परीक्षण के भीतर पाए गए tips डेटासेट का उपयोग करेंगे। हम डेटा को डेटाफ़्रेम नाम की tips पढ़ेंगे और मानेंगे कि हमारे पास एक ही नाम और संरचना की एक डेटाबेस तालिका है।

In [3]: url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'

In [4]: tips = pd.read_csv(url)

In [5]: tips.head()
Out[5]: 
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

चुनते हैं

SQL में, उन कॉलमों की अल्पविराम से अलग सूची का चयन करके चयन किया जाता है जिन्हें आप (या सभी कॉलमों को चुनने के लिए) चाहते हैं:

SELECT total_bill, tip, smoker, time
FROM tips
LIMIT 5;

पंडों के साथ, स्तंभ चयन आपके डेटाफ़्रेम में स्तंभ नामों की सूची पास करके किया जाता है:

In [6]: tips[['total_bill', 'tip', 'smoker', 'time']].head(5)
Out[6]: 
   total_bill   tip smoker    time
0       16.99  1.01     No  Dinner
1       10.34  1.66     No  Dinner
2       21.01  3.50     No  Dinner
3       23.68  3.31     No  Dinner
4       24.59  3.61     No  Dinner

कॉलम नामों की सूची के बिना DataFrame को कॉल करना सभी कॉलम (SQL के * समान) प्रदर्शित करेगा।

कहा पे

SQL में Filtering WHERE क्लॉज के जरिए किया जाता है।

SELECT *
FROM tips
WHERE time = 'Dinner'
LIMIT 5;

DataFrames को कई तरीकों से फ़िल्टर किया जा सकता है; सबसे सहज जो बूलियन इंडेक्सिंग का उपयोग कर रहा है।

In [7]: tips[tips['time'] == 'Dinner'].head(5)
Out[7]: 
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

उपरोक्त कथन केवल ट्रू / फाल्स ऑब्जेक्ट्स की एक Series को डेटाफ़्रेम में पास कर रहा है, ट्रू के साथ सभी पंक्तियों को लौटा रहा है।

In [8]: is_dinner = tips['time'] == 'Dinner'

In [9]: is_dinner.value_counts()
Out[9]: 
True     176
False     68
Name: time, dtype: int64

In [10]: tips[is_dinner].head(5)