পান্ডারা কি কলামকে সূচক হিসাবে ব্যবহার করতে পারে?


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

হ্যাঁ, সেট_ইন্ডেক্সের সাহায্যে আপনি 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

পান্ডায় স্প্রেডশিট থেকে পড়ার সময় আপনি ইনডেক্স_কোল প্যারামিটার ব্যবহার করে কলাম সূচকটি সেট করতে পারেন ।

এখানে আমার সমাধান:

  1. প্রথমত, পিডি হিসাবে প্যান্ডাস আমদানি করুন: import pandas as pd

  2. পিডি.রেড_এক্সেল () (যদি আপনার কোনও স্প্রেডশীটে আপনার ডেটা থাকে ) ব্যবহার করে ফাইলের নাম পড়ুন এবং সূচি_কোল প্যারামিটার নির্দিষ্ট করে সূচিটিকে 'লোকালিটি' তে সেট করুন।

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

    এই পর্যায়ে আপনি যদি 'xlrd নামে কোনও মডিউল না পেয়ে' ত্রুটি পান তবে এটি ব্যবহার করে ইনস্টল করুন pip install xlrd

  3. ভিজ্যুয়াল ইন্সপেক্টের জন্য ডেটা ফ্রেমটি পড়ুন df.head()যা নীচের আউটপুটটি প্রিন্ট করবে SC

  4. এখন আপনি ডেটাফ্রেমের কাঙ্ক্ষিত কলামগুলির মানগুলি আনতে এবং এটি মুদ্রণ করতে পারেন

    sc2

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.