Python पांडा ट्यूटोरियल: डेटाफ्रेम, तिथि सीमा, पांडा का उपयोग
पांडा क्या है? Python?
पांडा एक ओपन-सोर्स लाइब्रेरी है जो आपको डेटा हेरफेर और विश्लेषण करने की अनुमति देती है Python. पांडा Python लाइब्रेरी संख्यात्मक तालिकाओं और समय श्रृंखला के लिए डेटा हेरफेर और डेटा संचालन प्रदान करती है। पांडा डेटा बनाने, हेरफेर करने और डेटा को व्यवस्थित करने का एक आसान तरीका प्रदान करते हैं। यह NumPy के शीर्ष पर बनाया गया है, इसका मतलब है कि इसे संचालित करने के लिए NumPy की आवश्यकता है।
पांडा का उपयोग क्यों करें?
डेटा वैज्ञानिक पांडा का उपयोग करते हैं Python इसके निम्नलिखित लाभों के लिए:
- गुम हुए डेटा को आसानी से संभालता है
- यह उपयोगकर्ता है एक-आयामी डेटा संरचना के लिए श्रृंखला और बहुआयामी डेटा संरचना के लिए डेटाफ़्रेम
- यह डेटा को विभाजित करने का एक कुशल तरीका प्रदान करता है
- यह डेटा को मर्ज करने, संयोजित करने या पुनः आकार देने का एक लचीला तरीका प्रदान करता है
- इसमें काम करने के लिए एक शक्तिशाली समय श्रृंखला उपकरण शामिल है
संक्षेप में कहें तो पांडा एक उपयोगी लाइब्रेरी है। डेटा विश्लेषणइसका उपयोग डेटा हेरफेर और विश्लेषण करने के लिए किया जा सकता है। पांडा शक्तिशाली और उपयोग में आसान डेटा संरचनाएँ प्रदान करते हैं, साथ ही इन संरचनाओं पर तेज़ी से संचालन करने का साधन भी प्रदान करते हैं।
पांडा कैसे स्थापित करें?
अब इसमें Python पांडा ट्यूटोरियल में, हम सीखेंगे कि पांडा को कैसे स्थापित किया जाए Python.
पांडा लाइब्रेरी स्थापित करने के लिए, कृपया हमारा ट्यूटोरियल देखें TensorFlow कैसे स्थापित करें. पांडा डिफ़ॉल्ट रूप से स्थापित है। दूरस्थ मामले में, पांडा स्थापित नहीं है-
आप निम्न का उपयोग करके पांडा को स्थापित कर सकते हैं:
- एनाकोंडा: conda install -c एनाकोंडा पांडा
- In Jupyter नोटबुक :
import sys
!conda install --yes --prefix {sys.prefix} pandas
पांडा डेटाफ्रेम क्या है?
पांडा डेटाफ़्रेम लेबल वाली डेटा संरचना वाली दो-आयामी सरणी है जिसमें अलग-अलग कॉलम प्रकार होते हैं। डेटाफ़्रेम डेटा को सारणीबद्ध प्रारूप में संग्रहीत करने का एक मानक तरीका है, जिसमें सूचना संग्रहीत करने के लिए पंक्तियाँ और सूचना को नाम देने के लिए कॉलम होते हैं। उदाहरण के लिए, मूल्य एक कॉलम का नाम हो सकता है और 2,3,4 मूल्य मान हो सकते हैं।
डेटा फ़्रेम सांख्यिकीविद् और अन्य डेटा व्यवसायियों के बीच अच्छी तरह से जाना जाता है।
नीचे पांडा डेटा फ्रेम का चित्र दिया गया है:
श्रृंखला क्या है?
एक श्रृंखला एक आयामी डेटा संरचना है। इसमें पूर्णांक, फ़्लोट और स्ट्रिंग जैसी कोई भी डेटा संरचना हो सकती है। यह तब उपयोगी होता है जब आप गणना करना चाहते हैं या एक आयामी सरणी लौटाना चाहते हैं। परिभाषा के अनुसार, एक श्रृंखला में कई कॉलम नहीं हो सकते। बाद के मामले के लिए, कृपया डेटा फ़्रेम संरचना का उपयोग करें।
Python पांडा श्रृंखला के निम्नलिखित पैरामीटर हैं:
- डेटा: एक सूची, शब्दकोश या स्केलर मान हो सकता है
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
आप इंडेक्स के साथ इंडेक्स जोड़ सकते हैं। यह पंक्तियों को नाम देने में मदद करता है। लंबाई कॉलम के आकार के बराबर होनी चाहिए
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
नीचे, आप तीसरी पंक्तियों के लिए एक लुप्त मान के साथ एक पांडा श्रृंखला बनाते हैं। ध्यान दें, में लुप्त मान Python "NaN" के रूप में नोट किया गया है। आप गुम मान बनाने के लिए numpy का उपयोग कर सकते हैं: np.nan कृत्रिम रूप से
pd.Series([1,2,np.nan])
उत्पादन
0 1.0 1 2.0 2 NaN dtype: float64
पांडा डेटाफ़्रेम बनाएँ
अब इस पांडा डेटाफ्रेम ट्यूटोरियल में, हम सीखेंगे कि कैसे बनाएं Python पांडा डेटाफ़्रेम:
आप pd.Data frame() के साथ numpy array को pandas डेटा फ़्रेम में बदल सकते हैं। इसका विपरीत भी संभव है। pandas डेटा फ़्रेम को array में बदलने के लिए, आप np.array() का उपयोग कर सकते हैं
## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]]
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)
## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame: 0 1
0 1 2
1 3 4
Numpy array: [[1 2]
[3 4]]
आप पांडा डेटाफ्रेम बनाने के लिए शब्दकोश का भी उपयोग कर सकते हैं।
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
| आयु | नाम | |
|---|---|---|
| 0 | 30 | जॉन |
| 1 | 40 | स्मिथ |
पांडा रेंज डेटा
पांडा के पास तारीख की सीमा बनाने के लिए एक सुविधाजनक API है। आइए जानें Python पांडा के उदाहरण:
pd.data_range(दिनांक,अवधि,आवृत्ति):
- पहला पैरामीटर प्रारंभिक तिथि है
- दूसरा पैरामीटर अवधियों की संख्या है (यदि अंतिम तिथि निर्दिष्ट है तो वैकल्पिक)
- अंतिम पैरामीटर आवृत्ति है: दिन: 'D', महीना: 'M' और वर्ष: 'Y.'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)
उत्पादन
Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)
उत्पादन
Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')
डेटा का निरीक्षण
आप डेटासेट के हेड या टेल की जांच head() से कर सकते हैं, या tail() के पहले पांडा के डेटा फ्रेम का नाम लगा सकते हैं, जैसा कि नीचे दिए गए पांडा उदाहरण में दिखाया गया है:
चरण 1) के साथ एक यादृच्छिक अनुक्रम बनाएँ numpyअनुक्रम में 4 कॉलम और 6 पंक्तियाँ हैं
random = np.random.randn(6,4)
चरण 2) फिर आप पांडा का उपयोग करके एक डेटा फ़्रेम बनाते हैं।
डेटा फ़्रेम के लिए इंडेक्स के रूप में डेट्स_एम का उपयोग करें। इसका मतलब है कि प्रत्येक पंक्ति को एक "नाम" या एक इंडेक्स दिया जाएगा, जो दिनांक के अनुरूप होगा।
अंत में, आप तर्क कॉलम के साथ 4 कॉलम को एक नाम देते हैं
# Create data with date
df = pd.DataFrame(random,
index=dates_m,
columns=list('ABCD'))
चरण 3) हेड फ़ंक्शन का उपयोग करना
df.head(3)
| A | B | C | D | |
|---|---|---|---|---|
| 2030-01-31 | 1.139433 | 1.318510 | -0.181334 | 1.615822 |
| 2030-02-28 | -0.081995 | -0.063582 | 0.857751 | -0.527374 |
| 2030-03-31 | -0.519179 | 0.080984 | -1.454334 | 1.314947 |
चरण 4) टेल फ़ंक्शन का उपयोग करना
df.tail(3)
| A | B | C | D | |
|---|---|---|---|---|
| 2030-04-30 | -0.685448 | -0.011736 | 0.622172 | 0.104993 |
| 2030-05-31 | -0.935888 | -0.731787 | -0.558729 | 0.768774 |
| 2030-06-30 | 1.096981 | 0.949180 | -0.196901 | -0.471556 |
चरण 5) डेटा के बारे में सुराग पाने के लिए एक बेहतरीन अभ्यास है डिस्क्राइब() का उपयोग करना। यह डेटासेट की गणना, माध्य, मानकीकरण, न्यूनतम, अधिकतम और प्रतिशतक प्रदान करता है।
df.describe()
| A | B | C | D | |
|---|---|---|---|---|
| गणना | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
| मतलब | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
| एसटीडी | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
| मिनट | -0.935888 | -0.731787 | -1.454334 | -0.527374 |
| 25% तक | -0.643880 | -0.050621 | -0.468272 | -0.327419 |
| 50% तक | -0.300587 | 0.034624 | -0.189118 | 0.436883 |
| 75% तक | 0.802237 | 0.732131 | 0.421296 | 1.178404 |
| मैक्स | 1.139433 | 1.318510 | 0.857751 | 1.615822 |
स्लाइस डेटा
इसका अंतिम बिन्दु यह है कि Python पांडा ट्यूटोरियल एक पांडा डेटा फ्रेम को कैसे स्लाइस किया जाए, इसके बारे में है।
आप किसी विशेष कॉलम में डेटा निकालने के लिए कॉलम नाम का उपयोग कर सकते हैं जैसा कि नीचे दिए गए पांडा उदाहरण में दिखाया गया है:
## Slice ### Using name df['A'] 2030-01-31 -0.168655 2030-02-28 0.689585 2030-03-31 0.767534 2030-04-30 0.557299 2030-05-31 -1.547836 2030-06-30 0.511551 Freq: M, Name: A, dtype: float64
एकाधिक कॉलम चुनने के लिए, आपको दो बार ब्रैकेट का उपयोग करना होगा, [[..,..]]
ब्रैकेट की पहली जोड़ी का अर्थ है कि आप कॉलम चुनना चाहते हैं, ब्रैकेट की दूसरी जोड़ी बताती है कि आप कौन से कॉलम वापस करना चाहते हैं।
df[['A', 'B']].
| A | B | |
|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 |
| 2030-02-28 | 0.689585 | 0.998266 |
| 2030-03-31 | 0.767534 | -0.940617 |
| 2030-04-30 | 0.557299 | 0.507350 |
| 2030-05-31 | -1.547836 | 1.276558 |
| 2030-06-30 | 0.511551 | 1.572085 |
आप पंक्तियों को इस प्रकार विभाजित कर सकते हैं:
नीचे दिया गया कोड पहली तीन पंक्तियाँ लौटाता है
### using a slice for row df[0:3]
| A | B | C | D | |
|---|---|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 | 0.572301 | -0.031827 |
| 2030-02-28 | 0.689585 | 0.998266 | 1.164690 | 0.475975 |
| 2030-03-31 | 0.767534 | -0.940617 | 0.227255 | -0.341532 |
loc फ़ंक्शन का उपयोग नामों के आधार पर कॉलम चुनने के लिए किया जाता है। हमेशा की तरह, कोमा से पहले के मान पंक्तियों के लिए होते हैं और बाद के कॉलम को संदर्भित करते हैं। एक से अधिक कॉलम चुनने के लिए आपको कोष्ठक का उपयोग करना होगा।
## Multi col df.loc[:,['A','B']]
| A | B | |
|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 |
| 2030-02-28 | 0.689585 | 0.998266 |
| 2030-03-31 | 0.767534 | -0.940617 |
| 2030-04-30 | 0.557299 | 0.507350 |
| 2030-05-31 | -1.547836 | 1.276558 |
| 2030-06-30 | 0.511551 | 1.572085 |
पांडा में कई पंक्तियों और स्तंभों का चयन करने के लिए एक और तरीका है। आप iloc[] का उपयोग कर सकते हैं। यह विधि स्तंभ नाम के बजाय इंडेक्स का उपयोग करती है। नीचे दिया गया कोड ऊपर दिए गए समान डेटा फ़्रेम को लौटाता है
df.iloc[:, :2]
| A | B | |
|---|---|---|
| 2030-01-31 | -0.168655 | 0.587590 |
| 2030-02-28 | 0.689585 | 0.998266 |
| 2030-03-31 | 0.767534 | -0.940617 |
| 2030-04-30 | 0.557299 | 0.507350 |
| 2030-05-31 | -1.547836 | 1.276558 |
| 2030-06-30 | 0.511551 | 1.572085 |
एक कॉलम छोड़ें
आप pd.drop() का उपयोग करके कॉलम हटा सकते हैं
df.drop(columns=['A', 'C'])
| B | D | |
|---|---|---|
| 2030-01-31 | 0.587590 | -0.031827 |
| 2030-02-28 | 0.998266 | 0.475975 |
| 2030-03-31 | -0.940617 | -0.341532 |
| 2030-04-30 | 0.507350 | -0.296035 |
| 2030-05-31 | 1.276558 | 0.523017 |
| 2030-06-30 | 1.572085 | -0.594772 |
कड़ी
आप पांडा में दो डेटाफ़्रेम को जोड़ सकते हैं। आप pd.concat() का उपयोग कर सकते हैं
सबसे पहले, आपको दो डेटाफ़्रेम बनाने होंगे। अब तक तो सब ठीक है, आप पहले से ही डेटाफ़्रेम निर्माण से परिचित हैं
import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
'Age': ['25', '30', '50']},
index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
'Age': ['26', '11']},
index=[3, 4])
अंत में, आप दो डेटाफ़्रेम को संयोजित करते हैं
df_concat = pd.concat([df1,df2]) df_concat
| आयु | नाम | |
|---|---|---|
| 0 | 25 | जॉन |
| 1 | 30 | स्मिथ |
| 2 | 50 | पॉल |
| 3 | 26 | ऐडम |
| 4 | 11 | स्मिथ |
ड्रॉप_डुप्लिकेट
यदि किसी डेटासेट में डुप्लिकेट जानकारी हो सकती है, तो `drop_duplicates` डुप्लिकेट पंक्तियों को बाहर करने का एक आसान तरीका है। आप देख सकते हैं कि `df_concat` में एक डुप्लिकेट अवलोकन है, `Smith` कॉलम `name` में दो बार दिखाई देता है।
df_concat.drop_duplicates('name')
| आयु | नाम | |
|---|---|---|
| 0 | 25 | जॉन |
| 1 | 30 | स्मिथ |
| 2 | 50 | पॉल |
| 3 | 26 | ऐडम |
मानों को क्रमबद्ध करें
आप sort_values के साथ मान सॉर्ट कर सकते हैं
df_concat.sort_values('Age')
| आयु | नाम | |
|---|---|---|
| 4 | 11 | स्मिथ |
| 0 | 25 | जॉन |
| 3 | 26 | ऐडम |
| 1 | 30 | स्मिथ |
| 2 | 50 | पॉल |
नाम बदलें: सूचकांक में परिवर्तन
आप पांडा में किसी कॉलम का नाम बदलने के लिए rename का उपयोग कर सकते हैं। पहला मान वर्तमान कॉलम का नाम है और दूसरा मान नया कॉलम का नाम है।
df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
| आयु_लोग | उपनाम | |
|---|---|---|
| 0 | 25 | जॉन |
| 1 | 30 | स्मिथ |
| 2 | 50 | पॉल |
| 3 | 26 | ऐडम |
| 4 | 11 | स्मिथ |
सारांश
नीचे पांडा के साथ डेटा विज्ञान के लिए सबसे उपयोगी विधि का सारांश दिया गया है
| आयात आंकड़ा | read_csv |
|---|---|
| श्रृंखला बनाएं | कई |
| डेटाफ़्रेम बनाएँ | डेटा ढांचा |
| दिनांक सीमा बनाएँ | तिथि सीमा |
| वापसी सिर | सिर |
| वापसी की पूंछ | पूंछ |
| वर्णन करें | वर्णन |
| नाम का उपयोग करके स्लाइस करें | डेटानाम['कॉलमनाम'] |
| पंक्तियों का उपयोग करके स्लाइस करें | डेटा_नाम[0:5] |

