Pandas डेटा साइंस और एनालिटिक्स के लिए सबसे लोकप्रिय पायथन लाइब्रेरी है। यह डेटा मैनिपुलेशन, एनालिसिस, और क्लीनिंग के लिए हाई-लेवल अब्स्ट्रैक्शन प्रदान करता है (NumPy पर निर्मित)।
इंस्टॉलेशन
pip install pandas matplotlib
मूल डेटा स्ट्रक्चर्स
Series - 1-डायमेंशनल लेबल्ड ऐरे
import pandas as pd
# बेसिक सीरीज
s = pd.Series([12, 24, 36, 48, 60, 72, 84])
print(s)
# 0 12
# 1 24
# 2 36
# ...
# कस्टम इंडेक्स के साथ
s = pd.Series([12, 24, 36, 48, 60, 72, 84],
index=['ind0', 'ind1', 'ind2', 'ind3', 'ind4', 'ind5', 'ind6'])
print(s['ind3']) # 48
# मल्टीपल इंडेक्स एक्सेस
print(s[['ind0', 'ind3', 'ind6']])
# फिल्टरिंग
print(s[s > 24])
# मैथ ऑपरेशन्स
print(s * 2)
# डिक्शनरी से
s = pd.Series({'a': 9, 'b': 18, 'c': 27, 'd': 36})
s.name = 'Numbers'
s.index.name = 'Letters'
print(s)
DataFrame - 2-डायमेंशनल टेबलर डेटा
# डिक्शनरी से DataFrame
df = pd.DataFrame({
'Country': ['China', 'India', 'Indonesia', 'Pakistan'],
'Population': [1420062022, 1368737513, 269536482, 204596442],
'Area': [9388211, 2973190, 1811570, 770880]
})
print(df)
# Area Country Population
# 0 9388211 China 1420062022
# 1 2973190 India 1368737513
# ...
# कस्टम इंडेक्स
df.index = ['CHA', 'IND', 'IDO', 'PAK']
df.index.name = 'Country Code'
print(df)
एलिमेंट एक्सेस
# कॉलम एक्सेस print(df['Country']) # रो एक्सेस - लेबल द्वारा print(df.loc['IND']) # रो एक्सेस - पोजीशन द्वारा print(df.iloc[1]) # मल्टीपल रो, स्पेसिफिक कॉलम print(df.loc[['CHA', 'IND'], 'Population'])
फाइल पढ़ना/लिखना
# CSV पढ़ें
df = pd.read_csv('data.csv', sep=',')
# Excel पढ़ें
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# JSON पढ़ें
df = pd.read_json('data.json')
# SQL से पढ़ें
import sqlalchemy
engine = sqlalchemy.create_engine('sqlite:///data.db')
df = pd.read_sql('SELECT * FROM table', engine)
# लिखना
df.to_csv('output.csv', index=False)
df.to_excel('output.xlsx', index=False)
df.to_json('output.json', orient='records')
एग्रीगेशन और ग्रुपिंग
# टाइटैनिक डेटासेट उदाहरण
titanic = pd.read_csv('titanic.csv')
# लिंग और सर्वाइवल द्वारा ग्रुप
print(titanic.groupby(['Sex', 'Survived'])['PassengerId'].count())
# क्लास और सर्वाइवल द्वारा
print(titanic.groupby(['PClass', 'Survived'])['PassengerId'].count())
# मल्टीपल एग्रीगेशन
print(titanic.groupby('PClass')['Age'].agg(['mean', 'min', 'max', 'count']))
टाइम सीरीज एनालिसिस
# स्टॉक डेटा (Date कॉलम को इंडेक्स बनाएं)
amzn = pd.read_csv('AMZN.csv', index_col='Date', parse_dates=True)
amzn = amzn.sort_index()
# विशिष्ट महीने का औसत क्लोजिंग प्राइस
april_2015_avg = amzn.loc['2015-04', 'Close'].mean()
print(f"अप्रैल 2015 औसत: {april_2015_avg}")
# रीसैंपलिंग (मासिक से त्रैमासिक)
quarterly = amzn.resample('Q').mean()
print(quarterly.head())
विज़ुअलाइज़ेशन (Matplotlib के साथ)
import matplotlib.pyplot as plt
# स्टॉक प्राइस प्लॉट
df = pd.read_csv('AMZN.csv', index_col='Date', parse_dates=True)
df = df.sort_index()
# समय अवधि फिल्टर
plot_data = df.loc['2014-06':'2018-08', ['Close']].astype(float)
# प्लॉट
ax = plot_data.plot(figsize=(12, 6), title='Amazon Stock Price')
ax.set_xlabel('Date')
ax.set_ylabel('Close Price ($)')
plt.tight_layout()
plt.show()
उपयोगी Pandas ऑपरेशन्स चिटशीट
| ऑपरेशन | कोड |
|---|---|
| मिसिंग वैल्यूज चेक | df.isnull().sum() |
| मिसिंग वैल्यूज भरें | df.fillna(value) या df.interpolate() |
| डुप्लिकेट हटाएं | df.drop_duplicates() |
| कॉलम रीनेम | df.rename(columns={'old': 'new'}) |
| कॉलम टाइप बदलें | df['col'] = df['col'].astype(int) |
| शर्तानुसार फिल्टर | df[df['age'] > 30] |
| नया कॉलम जोड़ें | df['new'] = df['a'] + df['b'] |
| पिवट टेबल | df.pivot_table(index='A', columns='B', values='C', aggfunc='mean') |
| मर्ज/जॉइन | pd.merge(df1, df2, on='key') |
| कॉन्कैट | pd.concat([df1, df2]) |
प्रदर्शन टिप्स
- लूप्स के बजाय वेक्टराइज्ड ऑपरेशन्स उपयोग करें
apply()के बजाय बिल्ट-इन मेथड्स उपयोग करें- बड़े डेटा के लिए
dtypeस्पेसिफाई करें categoryडेटा टाइप उपयोग करें कम कार्डिनैलिटी कॉलम्स के लिए- चंक्स में पढ़ें:
pd.read_csv('big.csv', chunksize=10000)