সিএসভি পড়ার সময় পান্ডসে সূচক কলামটি সরিয়ে ফেলা হচ্ছে


128

আমার কাছে নিম্নলিখিত কোড রয়েছে যা একটি সিএসভি ফাইল আমদানি করে। এখানে 3 টি কলাম রয়েছে এবং আমি তাদের প্রথম দুটিটি ভেরিয়েবলগুলিতে সেট করতে চাই। আমি যখন দ্বিতীয় কলামটি পরিবর্তনশীল "দক্ষতা" তে সেট করি তখন সূচী কলামটিও ট্যাক করা হয়। আমি কীভাবে সূচক কলাম থেকে মুক্তি পেতে পারি?

df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False)
energy = df.index
efficiency = df.Efficiency
print efficiency

আমি ব্যবহার করার চেষ্টা করেছি

del df['index']

আমি সেট করার পরে

energy = df.index

যা আমি অন্য পোস্টে পেয়েছি কিন্তু এর ফলে "কী-ইরার: 'সূচক'"

উত্তর:


70

ডেটা ফ্রেম এবং সিরিজের সর্বদা একটি সূচক থাকে। যদিও এটি কলাম (গুলি) এর পাশাপাশি প্রদর্শিত হয়েছে, এটি কোনও কলাম নয়, যার কারণে এটি কার্যকর del df['index']হয়নি।

আপনি যদি সূচিকে সরল অনুক্রমিক সংখ্যার সাথে প্রতিস্থাপন করতে চান তবে ব্যবহার করুন df.reset_index()

কেন সূচকটি সেখানে রয়েছে এবং এটি কীভাবে ব্যবহৃত হয় তা বোঝার জন্য পান্ডাদের উদাহরণ হিসাবে 10 মিনিট দেখুন ।


1
ধন্যবাদ! আমি এটিকে প্যান্ডাস না ব্যবহার করে অন্যভাবে আমদানির সিদ্ধান্ত নিয়েছি। আমাকে প্রতিটি কলামে কিছু গাণিতিক সম্পাদন করতে হবে এবং পাইথন পছন্দ করছিল না যা সূচক কলামটি সংযুক্ত আছে। পান্ডস অবশ্যই ডেটা আমদানির সহজতম উপায় তবে আমি খুঁজে পাওয়া সর্বদা সেরা নয়।
বোগদান জেনিসজেউসকি

2
পাণ্ডগণকে পাটিগণিত করতে ব্যবহার করার চেষ্টা করেছিলেন?
জেমি বুল

1
কেউ কি সূচকের নাম মুছে ফেলতে পারে?
কোয়ান্ট

3
হ্যাঁ index.name = None,।
ড্যান অ্যালান

1
@ বোগদানজানিসজেউসকি, আপনি যদি পান্ডা ব্যবহার করেন না, তবে কেন আপনি এটিকে উত্তর হিসাবে গ্রহণ করলেন?
মাল্টিগডোভার্স

249

আপনার সিএসভি ফাইল থেকে এবং পড়ার সময় যুক্তিটি অন্তর্ভুক্ত করা হয় index=Falseউদাহরণস্বরূপ:

 df.to_csv(filename, index=False)

এবং সিএসভি থেকে পড়তে

df.read_csv(filename, index=False)  

এটি সমস্যাটি প্রতিরোধ করা উচিত যাতে আপনার এটি পরে ঠিক করার দরকার নেই।


8
অনেক ধন্যবাদ। প্রশ্নটি ঠিক এটিই খুঁজছে।
প্যালে ব্লু ডট

1
"শিরোনাম = মিথ্যা" একইভাবে শিরোনামগুলি সরানোর জন্য কাজ করে
জে ডাহলগ্রেন

29
হওয়া উচিত index_col=False
বেদদা

1
ব্যবহার df.to_sql("table",cursor,if_exists="append",index=False)করে স্ক্লাইট ত্রুটিও ঠিক করা হয়sqlite3.OperationalError: table message has no column named index
আন্না

1
@বেদদা মনে হয় এটি পান্ডাসের index=Falseজন্য to_excel()এবং এর index_col=Falseসাথে read_csv()রয়েছে 0.23.4। : - /
ম্যাট উইলকি

70

df.reset_index(drop=True, inplace=True)


2
এটি আসলে আমার প্রিয় সমাধান, তবে খুব বিস্তৃত উত্তর নয় not ম্যানুয়ালটি আর্গুমেন্ট সম্পর্কে এটি পড়ে drop: "ডেটাফ্রেম কলামগুলিতে সূচি প্রবেশ করানোর চেষ্টা করবেন না This এটি সূচকটি ডিফল্ট পূর্ণসংখ্য সূচকগুলিতে পুনরায় সেট করে।" pandas.pydata.org/pandas-docs/stable/generated/…
tommy.carstensen

@ tommy.carstensen তারপরে আপনি আগের সূচকটির প্রতিস্থাপন হিসাবে সূচীতে পূর্ণসংখ্যা পাওয়া এড়াবেন কীভাবে? আমি মনে করি এটি আপনার লিঙ্কের পাঠ্যের একটি ভুল বোঝাবুঝি। প্রশ্নটি এখানে সূচকটি ফেলে দেওয়া হবে । এবং এটি এখানে পৌঁছেছে। আপনি ডিফল্ট পূর্ণসংখ্যা পান, যেহেতু কোনও সূচক ছাড়া কোনও ডেটফ্রেম নেই, তবে আপনি পূর্বের সূচিটি বাদ দিয়েছেন। এই কারণেই এই উত্তরটি গ্রহণযোগ্য উত্তর হওয়া উচিত, কারণ এটি স্মৃতিশক্তিকে দক্ষ করে তোলে inplace=True
লোরেনজ

13

উদাহরণস্বরূপ এটি কোনও "আইডি" হলে আপনি কলামগুলির একটিকে সূচক হিসাবে সেট করতে পারেন। এই ক্ষেত্রে সূচি কলামটি আপনার চয়ন করা কলামগুলির মধ্যে একটি দ্বারা প্রতিস্থাপন করা হবে।

df.set_index('id', inplace=True)

3

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

df = pd.DataFrame(df.values);

সম্পাদনা করুন:

আপনার যদি ভিন্ন ভিন্ন ডেটা ধরণের থাকে তবে ভাল ধারণা নয়। আরও ভাল ব্যবহার

df.columns = range(len(df.columns))

2

আপনার সিএসভি ফাইলে কোন কলামটি সূচক তা নির্দিষ্ট করতে পারেন from_csv ফাংশন এর index_col পরামিতি ব্যবহার করে যদি এটি আপনার সমস্যার সমাধান না করে তবে আপনার ডেটার উদাহরণ সরবরাহ করুন


2

একটা জিনিস আমি df=df.reset_index() তখন করিdf=df.drop(['index'],axis=1)


ত্রুটি: "লেবেল ['সূচক'] অক্ষ অক্ষরে নেই"
ভাসিন ইউরি

@ ভাসিনইউরি এর অর্থ df.reset_index().drop(columns=['yourfirstindex', 'yoursecondindex'])এটি, এটি কেবলমাত্র সূচকটির সাথে 'সূচক' নিয়ে কাজ করে যে সূচকের কোনও নাম নেই এবং তারপরে 'সূচক' নামক একটি কলামে পরিণত হয় df.reset_index().drop(columns=['index'])। যুক্ত প্যারামিটারটি axis=1ডিফল্ট। এই পদ্ধতির প্রস্তাব দেওয়া হয় না, @ সুবহজিৎ reset_index(inplace=True)মুখোপাধ্যায়ের কাজগুলি "অন্তর্নিহিত" এবং এভাবে স্মৃতি সংরক্ষণ করে।
লরেঞ্জ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.