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]

इस पोस्ट को संक्षेप में इस प्रकार लिखें: