Pandas DataFrame में इंडेक्सिंग ऑपरेटर (वर्गाकार कोष्ठक `[]`) का उपयोग करके कॉलम सबसेट बनाना। यह कॉलम चयन का सबसे मूल और सामान्य तरीका है।
बुनियादी सिंटैक्स
# एकल कॉलम (Series लौटाता है)
df['column_name']
# एकाधिक कॉलम (DataFrame लौटाता है) - दोहरे कोष्ठक ध्यान दें
df[['col1', 'col2', 'col3']]
उदाहरण
import pandas as pd
dataFrame = pd.DataFrame({
"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],
"Opening_Stock": [300, 700, 1200, 1500],
"Closing_Stock": [200, 500, 1000, 900]
})
print("मूल DataFrame:\n", dataFrame)
# 1. एकल कॉलम सबसेट (Series)
product_series = dataFrame['Product']
print("\nProduct कॉलम (Series):\n", product_series)
print(f"प्रकार: {type(product_series)}")
# 2. एकल कॉलम सबसेट (DataFrame) - दोहरे कोष्ठक
product_df = dataFrame[['Product']]
print("\nProduct कॉलम (DataFrame):\n", product_df)
print(f"प्रकार: {type(product_df)}")
# 3. एकाधिक कॉलम सबसेट
stock_df = dataFrame[['Opening_Stock', 'Closing_Stock']]
print("\nस्टॉक कॉलम:\n", stock_df)
# 4. कॉलम क्रम बदलना
reordered = dataFrame[['Closing_Stock', 'Opening_Stock', 'Product']]
print("\nपुनर्क्रमित कॉलम:\n", reordered)
आउटपुट
मूल DataFrame:
Closing_Stock Opening_Stock Product
0 200 300 SmartTV
1 500 700 ChromeCast
2 1000 1200 Speaker
3 900 1500 Earphone
Product कॉलम (Series):
0 SmartTV
1 ChromeCast
2 Speaker
3 Earphone
Name: Product, dtype: object
Product कॉलम (DataFrame):
Product
0 SmartTV
1 ChromeCast
2 Speaker
3 Earphone
स्टॉक कॉलम:
Opening_Stock Closing_Stock
0 300 200
1 700 500
2 1200 1000
3 1500 900
महत्वपूर्ण अंतर: Series vs DataFrame
| सिंटैक्स | परिणाम प्रकार | उपयोग |
|---|---|---|
df['col'] | Series | एकल कॉलम ऑपरेशन्स, प्लॉटिंग |
df[['col']] | DataFrame | DataFrame ऑपरेशन्स, मर्ज, एक्सपोर्ट |
df[['col1', 'col2']] | DataFrame | एकाधिक कॉलम चयन |
उन्नत चयन तकनीकें
1. स्लाइसिंग के साथ कॉलम चुनें
# कॉलम इंडेक्स द्वारा (iloc के समान लेकिन कॉलम के लिए)
# Pandas में सीधा कॉलम स्लाइसिंग नहीं, लेकिन:
cols = dataFrame.columns[1:3] # इंडेक्स 1, 2
subset = dataFrame[cols]
print("इंडेक्स 1-2 कॉलम:\n", subset)
2. फिल्टर/पैटर्न मैचिंग
# 'Stock' वाले कॉलम
stock_cols = dataFrame.filter(like='Stock')
print("Stock कॉलम:\n", stock_cols)
# 'Opening' से शुरू
opening_cols = dataFrame.filter(regex='^Opening')
print("Opening कॉलम:\n", opening_cols)
3. डेटा प्रकार के अनुसार चुनें
# केवल संख्यात्मक कॉलम
numeric = dataFrame.select_dtypes(include='number')
print("संख्यात्मक:\n", numeric)
# केवल ऑब्जेक्ट (स्ट्रिंग) कॉलम
object_cols = dataFrame.select_dtypes(include='object')
print("ऑब्जेक्ट:\n", object_cols)
4. शर्तानुसार कॉलम चुनें
# जिन कॉलम का माध्य > 500 है
high_mean_cols = dataFrame.columns[dataFrame.mean() > 500].tolist()
print("उच्च माध्य कॉलम:", high_mean_cols)
print(dataFrame[high_mean_cols])
सामान्य गलतियाँ
# गलत: एकल कॉलम के लिए सूची भूल जाना
# df['Product', 'Opening_Stock'] # KeyError!
# सही: दोहरे कोष्ठक
df[['Product', 'Opening_Stock']] # DataFrame
# या लोक/इलोक उपयोग करें
df.loc[:, ['Product', 'Opening_Stock']]
df.iloc[:, [0, 1]] # इंडेक्स द्वारा
प्रदर्शन नोट
- कॉलम चयन O(1) ऑपरेशन है (डेटा कॉपी नहीं होता, व्यू बनता है)
- बड़े DataFrames के लिए
df.loc[:, cols]थोड़ा तेज़ हो सकता है - चेनिंग से बचें:
df[df > 0]['col']→df.loc[df > 0, 'col']उपयोग करें