क्या पांडा सूचकांक के रूप में कॉलम का उपयोग कर सकते हैं?


114

मेरे पास इस तरह एक स्प्रेडशीट है:

Locality    2005    2006    2007    2008    2009

ABBOTSFORD  427000  448000  602500  600000  638500
ABERFELDIE  534000  600000  735000  710000  775000
AIREYS INLET459000  440000  430000  517500  512500

मैं पंक्ति के साथ कॉलम को मैन्युअल रूप से स्वैप नहीं करना चाहता। क्या यह संभव है कि पंडों के डेटा को किसी सूची में उपयोग किया जा सके:

data['ABBOTSFORD']=[427000,448000,602500,600000,638500]
data['ABERFELDIE']=[534000,600000,735000,710000,775000]
data['AIREYS INLET']=[459000,440000,430000,517500,512500]


5
मैं असहमत होता। भले ही प्रश्न का सार समान है (और इसलिए उत्तर भी है), लोग इस प्रश्न की तरह कुछ खोज करेंगे जब वे 'सूचकांक में एक स्तंभ बनाना चाहते हैं'।
माइकल हॉफ

जवाबों:


222

हां, set_index से आप Localityअपनी पंक्ति अनुक्रमणिका बना सकते हैं ।

data.set_index('Locality', inplace=True)

यदि inplace=Trueप्रदान नहीं किया गया है, तो set_indexपरिणामस्वरूप संशोधित डेटाफ़्रेम लौटाता है।

उदाहरण:

> import pandas as pd
> df = pd.DataFrame([['ABBOTSFORD', 427000, 448000],
                     ['ABERFELDIE', 534000, 600000]],
                    columns=['Locality', 2005, 2006])

> df
     Locality    2005    2006
0  ABBOTSFORD  427000  448000
1  ABERFELDIE  534000  600000

> df.set_index('Locality', inplace=True)
> df
              2005    2006
Locality                  
ABBOTSFORD  427000  448000
ABERFELDIE  534000  600000

> df.loc['ABBOTSFORD']
2005    427000
2006    448000
Name: ABBOTSFORD, dtype: int64

> df.loc['ABBOTSFORD'][2005]
427000

> df.loc['ABBOTSFORD'].values
array([427000, 448000])

> df.loc['ABBOTSFORD'].tolist()
[427000, 448000]

13

जैसा कि पहले से ही उपयोग किया गया है, आप सूचकांक को बदल सकते हैं set_index। आपको स्तंभों के साथ पंक्तियों को मैन्युअल रूप से स्वैप करने की आवश्यकता नहीं है, data.Tपंडों में एक संक्रमण ( ) विधि है जो आपके लिए करती है:

> df = pd.DataFrame([['ABBOTSFORD', 427000, 448000],
                    ['ABERFELDIE', 534000, 600000]],
                    columns=['Locality', 2005, 2006])

> newdf = df.set_index('Locality').T
> newdf

Locality    ABBOTSFORD  ABERFELDIE
2005        427000      534000
2006        448000      600000

तब आप डेटाफ़्रेम कॉलम मान प्राप्त कर सकते हैं और उन्हें सूची में बदल सकते हैं:

> newdf['ABBOTSFORD'].values.tolist()

[427000, 448000]

3

आप पंडों में स्प्रेडशीट से पढ़ते समय उपलब्ध index_col पैरामीटर का उपयोग करके कॉलम इंडेक्स सेट कर सकते हैं ।

यहाँ मेरा समाधान है:

  1. सबसे पहले, पीडी के रूप में आयात पांडा: import pandas as pd

  2. Pd.read_excel () (यदि आपके पास स्प्रेडशीट में आपका डेटा है ) का उपयोग करके फ़ाइल नाम में पढ़ें और index_col पैरामीटर को निर्दिष्ट करके सूचकांक को 'स्थानीयता' पर सेट करें।

    df = pd.read_excel('testexcel.xlsx', index_col=0)

    इस स्तर पर अगर आपको 'xlrd' नाम का कोई मॉड्यूल नहीं मिला है, तो इसका उपयोग करके इंस्टॉल करें pip install xlrd

  3. दृश्य निरीक्षण के लिए, डेटाफ्रेम का उपयोग करके पढ़ें df.head()जो निम्नलिखित आउटपुट को प्रिंट करेगा अनुसूचित जाति

  4. अब आप डेटाफ़्रेम के वांछित कॉलम के मूल्यों को प्राप्त कर सकते हैं और इसे प्रिंट कर सकते हैं

    sc2

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.