Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Pandas में कॉलम नाम से कॉलम इंडेक्स प्राप्त करना (get_loc())

Pandas DataFrame में कॉलम नाम से उसका इंडेक्स (पोजीशन) प्राप्त करने के लिए columns.get_loc() विधि का उपयोग किया जाता है। यह पूर्णांक इंडेक्स लौटाता है (0-आधारित)।

बुनियादी उपयोग

import pandas as pd

df = pd.DataFrame({
    "x": [5, 2, 7, 0],
    "y": [4, 7, 5, 1],
    "z": [9, 3, 5, 1]
})

print("DataFrame:\n", df)
print("\nकॉलम:", df.columns.tolist())

# कॉलम इंडेक्स प्राप्त करें
col_index_z = df.columns.get_loc('z')
print(f"\n'z' कॉलम का इंडेक्स: {col_index_z}")  # 2

col_index_x = df.columns.get_loc('x')
print(f"'x' कॉलम का इंडेक्स: {col_index_x}")  # 0

col_index_y = df.columns.get_loc('y')
print(f"'y' कॉलम का इंडेक्स: {col_index_y}")  # 1

आउटपुट

DataFrame:
   x  y  z
0  5  4  9
1  2  7  3
2  7  5  5
3  0  1  1

कॉलम: ['x', 'y', 'z']

'z' कॉलम का इंडेक्स: 2
'x' कॉलम का इंडेक्स: 0
'y' कॉलम का इंडेक्स: 1

उन्नत उपयोग

1. एकाधिक कॉलम के इंडेक्स प्राप्त करना

# एकाधिक कॉलम के लिए सूची समझ
cols = ['x', 'z']
indices = [df.columns.get_loc(c) for c in cols]
print(f"कॉलम {cols} के इंडेक्स: {indices}")  # [0, 2]

# स्लाइस ऑब्जेक्ट के रूप में
slice_obj = df.columns.get_loc('y'):df.columns.get_loc('z')+1
print(f"स्लाइस: {slice_obj}")  # slice(1, 3, None)

2. MultiIndex कॉलम में उपयोग

# MultiIndex कॉलम
arrays = [['A', 'A', 'B', 'B'], ['one', 'two', 'one', 'two']]
df_multi = pd.DataFrame([[1,2,3,4]], columns=arrays)
print("MultiIndex DataFrame:\n", df_multi)

# लेवल 0 पर 'A' की स्थिति
loc = df_multi.columns.get_loc('A')
print(f"\n'A' की स्थिति (लेवल 0): {loc}")  # slice(0, 2, None)

# लेवल 1 पर 'one' की स्थिति
loc_one = df_multi.columns.get_loc(('A', 'one'))
print(f"('A', 'one') की स्थिति: {loc_one}")  # 0

3. KeyError हैंडलिंग

# मौजूद न होने पर KeyError उठता है
try:
    idx = df.columns.get_loc('nonexistent')
except KeyError as e:
    print(f"कॉलम नहीं मिला: {e}")

# सुरक्षित तरीका: get() का उपयोग (लेकिन यह इंडेक्स नहीं देता)
# बेहतर: in ऑपरेटर से जांचें
col_name = 'w'
if col_name in df.columns:
    print(f"इंडेक्स: {df.columns.get_loc(col_name)}")
else:
    print(f"कॉलम '{col_name}' मौजूद नहीं है")

4. इलोक (iloc) के साथ उपयोग

# get_loc() का परिणाम iloc में उपयोग करें
col_idx = df.columns.get_loc('y')
print(f"\niloc से 'y' कॉलम चुनें: df.iloc[:, {col_idx}]")
print(df.iloc[:, col_idx])

# एकाधिक कॉलम
cols_idx = [df.columns.get_loc(c) for c in ['x', 'z']]
print(f"\niloc से एकाधिक कॉलम: df.iloc[:, {cols_idx}]")
print(df.iloc[:, cols_idx])

व्यावहारिक उपयोग मामले

  • डायनामिक कॉलम चयन जब कॉलम नाम रनटाइम पर पता हों
  • प्रदर्शन-महत्वपूर्ण कोड में df.iloc[:, idx] df['col'] से तेज़ होता है
  • कॉलम पुनर्व्यवस्थित करने में
  • MultiIndex कॉलम नेविगेशन में

संबंधित विधियाँ

विधिउद्देश्य
df.columns.get_loc(key)कॉलम नाम से इंडेक्स प्राप्त करें
df.columns.get_indexer(['col1', 'col2'])एकाधिक कॉलम के इंडेक्स (न मिलने पर -1)
df.columns.get_indexer_for(['col1'])सूची के क्रम में इंडेक्स (न मिलने पर एरर)
df.columns.tolist().index('col')पायथन सूची विधि (धीमी)
  1. - Python में String से Integer Values कैसे प्राप्त करें?

    String से Integer Values Extract करना आप Regular Expressions का उपयोग करके सभी Integer Values को उनके Occurrence के Order में Array में प्राप्त कर सकते हैं। उदाहरण: re.findall() का उपयोग import re s = 12 hello 52 19 some random 15 number # Numbers Extract करें और उन्हें int में Cast करें list_of_

  1. - पायथन में फ़ंक्शन नाम को स्ट्रिंग के रूप में कैसे प्राप्त करें?

    हर फ़ंक्शन के साथ __name__ नामक एक प्रॉपर्टी जुड़ी होती है। हम इस प्रॉपर्टी को एक्सेस करके फ़ंक्शन का नाम प्राप्त कर सकते हैं। उदाहरण के लिए: def some_func(): return 0 print(some_func.__name__) यह हमें आउटपुट देगा: some_func

  1. - पायथन में वेरिएबल नाम को स्ट्रिंग के रूप में कैसे प्राप्त करें?

    यह वास्तव में पायथन में कुछ ऐसा नहीं है जो आप करते हैं क्योंकि वेरिएबल्स वास्तव में ऑब्जेक्ट्स के लिए नाम मैपिंग हैं। पायथन में केवल वे ऑब्जेक्ट्स हैं जिनके कैनोनिकल नाम हैं वे हैं मॉड्यूल्स, फ़ंक्शन्स, और क्लासेस, और निश्चित रूप से इसकी कोई गारंटी नहीं है कि यह कैनोनिकल नाम फ़ंक्शन या क्लास परिभाषि