কীভাবে পাইথন / পান্ডারা সেভ করা সিএসভিতে একটি সূচক তৈরি করা এড়াতে পারেন?


407

আমি ফাইলে কিছু সম্পাদনা করার পরে ফোল্ডারে একটি সিএসভি সংরক্ষণের চেষ্টা করছি।

pd.to_csv('C:/Path of file.csv')যতবারই আমি সিএসভি ফাইল ব্যবহার করি ততবার সূচকের পৃথক কলাম থাকে। আমি সিএসভিতে সূচি মুদ্রণ এড়াতে চাই।

আমি চেষ্টা করেছিলাম:

pd.read_csv('C:/Path to file to edit.csv', index_col = False)

এবং ফাইলটি সংরক্ষণ করতে ...

pd.to_csv('C:/Path to save edited file.csv', index_col = False)

তবে, আমি এখনও অবাঞ্ছিত সূচক কলাম পেয়েছি। আমি আমার ফাইলগুলি সংরক্ষণ করার সময় কীভাবে এড়াতে পারি?


59
index=Falseপরিবর্তে চেষ্টা করুনindex_col
জেফ

আমরা কি এমএস এক্সেলেও এটি ব্যবহার করতে পারি?
নবীহ ইব্রাহিম বাওযির

হ্যাঁ আপনি করতে পারেনpd.to_excel(r'file.xlsx', index = False)
bfree67

index_colread_html()পাশাপাশি কাজ করে ।
ক্যারাম

উত্তর:


605

ব্যবহার index=False

df.to_csv('your.csv', index=False)

বিব্রতকরভাবে সহজ সমাধান, আমি এই 6 বছর পরে পৌঁছে লজ্জা।
peluzza

89

পরিস্থিতি পরিচালনা করার জন্য দুটি উপায় রয়েছে যেখানে আমরা চাই না যে সূচিটি CSV ফাইলে সংরক্ষণ করা হোক।

  1. অন্যরা যেমন বলেছে আপনি সিএসভি ফাইলে আপনার ডেটাফ্রেম সংরক্ষণ করার সময় সূচক = মিথ্যা ব্যবহার করতে পারেন

    df.to_csv('file_name.csv',index=False)

  2. অথবা আপনি নিজের ডেটাফ্রেমটিকে যেমন একটি সূচকের সাথে সংরক্ষণ করতে পারেন এবং পড়ার সময় আপনি কেবলমাত্র কলামটি বেনামে ফেলেছেন 0 আপনার পূর্ববর্তী সূচকযুক্ত containing

    df.to_csv(' file_name.csv ')
    df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'],axis=1)


1
"এবং পড়ার সময় আপনি কেবল আপনার পূর্ববর্তী সূচী সম্বলিত 0 নামবিহীন কলামটি বাদ দিন" এটির জন্য আরও একটি ভাল উপায় নির্দিষ্ট করা হয়েছে pd.read_csv(..., index_col=[0]এবং অতিরিক্ত "ড্রপ" কল এড়ানো উচিত।
CS95

30

আপনি যদি কোনও সূচক চান না তবে ফাইলটি পড়ুন:

import pandas as pd
df = pd.read_csv('file.csv', index_col=0)

এটি ব্যবহার করে সংরক্ষণ করুন

df.to_csv('file.csv', index=False)

2
আমি বিশ্বাস করতে পারি না যে ত্রুটিটি কেউ লক্ষ্য করেনি। df.to_csv('file.csv', index=False)
সিএসভিতে

1
লোকে মনোযোগ দিচ্ছেন না। ধন্যবাদ।
amalik2205

22

অন্যরা যেমন বলেছে, আপনি যদি প্রথমে সূচক কলামটি সংরক্ষণ করতে না চান, আপনি ব্যবহার করতে পারেন df.to_csv('processed.csv', index=False)

তবে, যেহেতু আপনি সাধারণত যে ডেটা ব্যবহার করবেন সেহেতু কিছুটা সূচি নিজেই রেখেছেন, একটি 'টাইমস্ট্যাম্প' কলামটি বলি, আমি সূচিটি রাখব এবং এটি ব্যবহার করে ডেটা লোড করব।

সুতরাং, ইনডেক্সড ডেটা সংরক্ষণ করতে প্রথমে তাদের সূচি সেট করুন এবং তারপরে ডেটা ফ্রেম সংরক্ষণ করুন:

df.set_index('timestamp')
df.to_csv('processed.csv')

এরপরে, আপনি হয় সূচী দিয়ে ডেটা পড়তে পারেন:

pd.read_csv('processed.csv', index_col='timestamp')

বা ডেটা পড়ুন এবং তারপরে সূচকটি সেট করুন:

pd.read_csv('filename.csv')
pd.set_index('column_name')

যদি আমি সূচক_কোল সেট করে থাকে তবে সেভ করা হয়, আমার তখনও সিএসভিতে একটি সংখ্যাযুক্ত নামবিহীন কলাম ছিল। (পাইথন 2)
স্মাইলার

14

আপনি যদি এই কলামটিকে সূচি হিসাবে রাখতে চান তবে আর একটি সমাধান।

pd.read_csv('filename.csv', index_col='Unnamed: 0')

1
ঠিক আমি যা খুঁজছিলাম, ধন্যবাদ এটি কোনওভাবে
সিএসভি

7

আপনি যদি একটি ভাল ফর্ম্যাট চান তবে পরবর্তী বিবৃতিটি সেরা:

dataframe_prediction.to_csv('filename.csv', sep=',', encoding='utf-8', index=False)

এই ক্ষেত্রে আপনি কলাম এবং utf-8 বিন্যাসের মধ্যে পৃথক হিসাবে ',' দিয়ে একটি সিএসভি ফাইল পেয়েছেন। তদতিরিক্ত, সংখ্যার সূচক প্রদর্শিত হবে না।

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