পান্ডা ব্যবহার করে পাইথনে এক্সেল ফাইল পড়া Read


144

আমি এইভাবে একটি এক্সেল ফাইলটি পড়ার চেষ্টা করছি:

newFile = pd.ExcelFile(PATH\FileName.xlsx)
ParsedData = pd.io.parsers.ExcelFile.parse(newFile)

যা একটি ত্রুটি ছুঁড়েছে যা বলেছে দুটি আর্গুমেন্ট প্রত্যাশিত, আমি জানি না যে দ্বিতীয় তর্কটি কী এবং আমি এখানে যা অর্জন করতে চাইছি তা হল এক্সেল ফাইলটিকে ডেটাফ্রেমে রূপান্তর করা, আমি কি এটি সঠিক উপায়ে করছি? বা পান্ডা ব্যবহার করে এটি করার অন্য কোনও উপায় আছে?

উত্তর:


222

বন্ধ করুন: প্রথমে আপনি কল করুন ExcelFileতবে তারপরে আপনি .parseপদ্ধতিটি কল করুন এবং এটি শীটের নামটি পাস করুন।

>>> xl = pd.ExcelFile("dummydata.xlsx")
>>> xl.sheet_names
[u'Sheet1', u'Sheet2', u'Sheet3']
>>> df = xl.parse("Sheet1")
>>> df.head()
                  Tid  dummy1    dummy2    dummy3    dummy4    dummy5  \
0 2006-09-01 00:00:00       0  5.894611  0.605211  3.842871  8.265307   
1 2006-09-01 01:00:00       0  5.712107  0.605211  3.416617  8.301360   
2 2006-09-01 02:00:00       0  5.105300  0.605211  3.090865  8.335395   
3 2006-09-01 03:00:00       0  4.098209  0.605211  3.198452  8.170187   
4 2006-09-01 04:00:00       0  3.338196  0.605211  2.970015  7.765058   

     dummy6  dummy7    dummy8    dummy9  
0  0.623354       0  2.579108  2.681728  
1  0.554211       0  7.210000  3.028614  
2  0.567841       0  6.940000  3.644147  
3  0.581470       0  6.630000  4.016155  
4  0.595100       0  6.350000  3.974442  

আপনি যা করছেন তা ক্লাসে বাস করে এমন পদ্ধতিটিকে কল করে যা উদাহরণস্বরূপ নয়, যা ঠিক আছে (যদিও খুব মূio় নয়), তবে আপনি যদি এটি করছেন তবে আপনাকে শীটের নামটিও পাস করতে হবে:

>>> parsed = pd.io.parsers.ExcelFile.parse(xl, "Sheet1")
>>> parsed.columns
Index([u'Tid', u'dummy1', u'dummy2', u'dummy3', u'dummy4', u'dummy5', u'dummy6', u'dummy7', u'dummy8', u'dummy9'], dtype=object)

6
আমি যখন "df = xl.parse (" পত্রক 1 ")" ব্যবহার করি তখন এটি স্বয়ংক্রিয়ভাবে প্রতিটি কলামের প্রথম কক্ষের ডেটাফ্রেমের কলামের নাম হিসাবে গ্রহণ করে, আমি কীভাবে আমার নিজস্ব কলামের নাম উল্লেখ করব?
রাকেশ অধিকারসভন

2
প্যান্ডাস 15.0.2 এ, parsed = pd.io.parsers.ExcelFile.parse(xl, "Sheet1")কাজ করে না এবং ত্রুটি নিক্ষেপ করে module object has no attribute ExcelFileparsed = pd.io.excel.ExcelFile.parse(xl, "Sheet1")আমার জন্য কাজ করে
নিল

খুশী হলাম। এটি প্রায় ততই ঝরঝরে যে কোনও ট্যাব ব্যবহার করে কীভাবে একই অ্যাক্সেস পাওয়া যায় openpyxl। পান্ডাস হুডের নীচে ওপেনপেক্সল কল করছে?
পাইডারম্যান

2
প্রথম সারিটি শিরোনামে পরিণত করা থেকে আপনি কীভাবে এটি প্রতিরোধ করবেন? আমি প্যারামিটারটি ব্যবহার করার চেষ্টা করেছি headers=Noneতবে এটি কোডটি ভাঙ্গেনি, এটি কোনওভাবেই কাজ করে নি।
এলিপটিকা

8
আমি আবিষ্কার করেছি যে এটি কাজ করার জন্য পাইপ ইনস্টল xlrd প্রয়োজন। এক্সএলআরডি প্যাকেজটি পান্ডাসের সাথে আসে না, সুতরাং আপনি যদি এটি অন্য কোনও উদ্দেশ্যে ইনস্টল না করেন তবে আপনি একটি "ImportError: xlrd নামে কোনও মডিউল" ব্যতিক্রম পাবেন না। যে কোনও হারে ম্যাকের পান্ডাস 0.19.0 হিসাবে সত্য।
ব্যবহারকারী5920660

95

এটি অনেক সহজ এবং সহজ উপায়।

import pandas
df = pandas.read_excel(open('your_xls_xlsx_filename','rb'), sheetname='Sheet 1')
# or using sheet index starting 0
df = pandas.read_excel(open('your_xls_xlsx_filename','rb'), sheetname=2)

ডকুমেন্টেশন সম্পূর্ণ বিবরণ পরীক্ষা করুন http://pandas.pydata.org/pandas-docs/version/0.17.1/ জেনারেটেড / প্যান্ডাস.ড্রেড_এক্সেল এইচটিএমএল

ফিউচার ওয়ার্নিং: sheetnameনতুন পান্ডা সংস্করণগুলির জন্য কীওয়ার্ডটি অবচিত হয়েছে, sheet_nameপরিবর্তে ব্যবহার করুন।


20

ভেবেছিলাম আমার এখানে যোগ করা উচিত, আপনি যদি সারি বা কলামগুলিকে লুপটি অ্যাক্সেস করতে চান তবে আপনি এটি করুন:

import pandas as pd

# open the file
xlsx = pd.ExcelFile(PATH\FileName.xlsx)

# get the first sheet as an object
sheet1 = xlsx.parse(0)

# get the first column as a list you can loop through
# where the is 0 in the code below change to the row or column number you want    
column = sheet1.icol(0).real

# get the first row as a list you can loop through
row = sheet1.irow(0).real

সম্পাদনা:

পদ্ধতিগুলি icol(i)এবং irow(i)এখন হ্রাস করা হয়। আপনি sheet1.iloc[:,i]আই-থ্রি কর্নেল এবং sheet1.iloc[i,:]আই-থ সারিটি পেতে ব্যবহার করতে পারেন ।


13

আমি মনে করি এটির আপনার প্রয়োজন মেটানো উচিত:

import pandas as pd

# Read the excel sheet to pandas dataframe
DataFrame = pd.read_excel("PATH\FileName.xlsx", sheetname=0)

0

আপনাকে কেবল আপনার ফাইলের পথটি খাওয়াতে হবে pd.read_excel

import pandas as pd

file_path = "./my_excel.xlsx"
data_frame = pd.read_excel(file_path)

এক্সেলটি লোড করার সময় প্যারামিটারগুলি অন্বেষণ করতে পছন্দ করতে ডকুমেন্টেশন চেকআউট করুনskiprows



0

এখানে সিনট্যাক্স সহ একটি আপডেট পদ্ধতি রয়েছে যা পাইথন কোডে বেশি ব্যবহৃত হয়। এটি আপনাকে একই ফাইল একাধিকবার খুলতে বাধা দেয়।

import pandas as pd

sheet1, sheet2 = None, None
with pd.ExcelFile("PATH\FileName.xlsx") as reader:
    sheet1 = pd.read_excel(reader, sheet_name='Sheet1')
    sheet2 = pd.read_excel(reader, sheet_name='Sheet2')

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html

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