Այս բլոգում ես ցանկանում եմ օգնել ձեզ հեշտությամբ ներմուծել excel ֆայլեր ցանկացած ֆայլի ընդարձակմամբ: Ավելի կոնկրետ, օգտագործեք միայն մեկ գործառույթ՝ ցանկացած excel ձևաչափ կարդալու համար (ներառյալ ավտոմատ կերպով ստանալ անջատիչ/սահմանազատիչ, որն օգտագործվում է ներսում):
Պահանջվող փաթեթներ՝
- պանդաներ՝ python բաց կոդով տվյալների վերլուծության և մանիպուլյացիայի գործիք: https://pandas.pydata.org/
- xlrd. գրադարան՝ Excel ֆայլերից տվյալների ընթերցման և ֆորմատավորման համար պատմական .xls ձևաչափով: https://xlrd.readthedocs.io/en/latest/
- openpyxl՝ Python գրադարան՝ Excel 2010 xlsx/xlsm ֆայլերը կարդալու/գրելու համար: https://pypi.org/project/openpyxl/
- Pathlib (արդեն տեղադրված է python-ով). Այն առաջարկում է դասեր, որոնք ներկայացնում են ֆայլային համակարգի ուղիները տարբեր օպերացիոն համակարգերի համար համապատասխան իմաստաբանությամբ: https://docs.python.org/3/library/pathlib.html
- csv (արդեն տեղադրված է python-ով). Այն իրականացնում է դասեր՝ CSV ձևաչափով աղյուսակային տվյալները կարդալու և գրելու համար:
Բացատրություններ:
- .csv և .txt ֆայլերի համար այստեղ օգտագործվում է «read_csv()» ֆունկցիան: Հարկ է նշել, որ մենք օգտագործել ենք «csv.Sniffer()»՝ սկզբում ներսից անջատիչ/սահմանազատիչը ավտոմատ կերպով ստանալու համար։
- .xlsx / .xlsm / .xltx / .xltm ֆայլի համար «read_excel()» ֆունկցիան օգտագործվում է openpyxl շարժիչի հետ միասին:
- .xlsֆայլի համար օգտագործվում է «read_excel()» ֆունկցիան:
Կոդ:
import pandas as pd from pathlib import Path import csv def import_spreadsheet(file_path,**kwargs): """ import a spreadsheet/excel with any extension. Parameters ---------- file_path: string file path of the spreadsheet/ excel file (relative or absolute). **kwargs: shared arguments of read_csv and read_excel Returns ------- df: pandas Dataframe dataframe of the spreadsheet. """ file_path = Path(file_path) # Path.suffix return the extension of a file if file_path.suffix == '.csv' or file_path.suffix == '.txt': # check the deliminiter with open(file_path, 'r', encoding='utf8') as csvfile: dialect = csv.Sniffer().sniff(csvfile.readline()) df = pd.read_csv(file_path, sep=str(dialect.delimiter),**kwargs) elif file_path.suffix in ['.xlsx', '.xlsm', '.xltx', '.xltm']: df = pd.read_excel(file_path, engine='openpyxl',**kwargs) # be cafefull that xlrd has explicitly removed support for anything other than xls files. else: df = pd.read_excel(file_path,**kwargs) return df
Խորհուրդներ.
Եթե աղյուսակը և ձեր python ֆայլը գտնվում են նույն թղթապանակում, «file_path» մուտքային փաստարկը ձեր աղյուսակի ֆայլի անունն է, օրինակ. «XXX.csv»
Հիշեցում.
Շնորհիվ **kwargsարգումենտների՝ մենք կարող ենք լրացուցիչ արգումենտներ փոխանցել այս ֆունկցիաներում։ Օրինակ՝ աղյուսակ ներմուծելիս առավել հաճախ օգտագործվող 2 փաստարկները.
- վերնագիր՝ int, int-ի ցանկ կամ None: Տող (0-ինդեքսավորված)՝ օգտագործելու վերլուծված DataFrame-ի սյունակների պիտակների համար:
- index_col : int, int ցուցակ կամ None: Սյունակ (0-ինդեքսավորված)՝ որպես DataFrame-ի տողերի պիտակներ օգտագործելու համար:
Այս ֆունկցիան օգտագործելիս կարող ենք արգումենտներում գրել.
# using default arguments df = import_spreadsheet(file_path='YourSpreadSheet.csv') # define arguments yourself df = import_spreadsheet(file_path='YourSpreadSheet.csv', header = 1, index_col=1)
Դիտեք աղյուսակների ընթերցման ավելի շատ մուտքային արգումենտներ՝-ում
https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
https://pandas.pydata.org/pandasdocs/stable/reference/api/pandas.read_excel.html
— — — — — — — — — -
Շնորհակալ եմ շատ իմ բլոգը կարդալու համար: Եթե դուք ունեք մտքեր կամ կարծիքներ թեմայի վերաբերյալ, ես կցանկանայի լսել ձեզնից ստորև ներկայացված մեկնաբանություններում: Կհանդիպենք շուտով:
Իմ բլոգի կայքը՝https://technodatascience.blogspot.com/2022/12/how-to-import-any-formats-of.html
Github. https://github.com/TianyiDataScience
Linkedin՝ https://www.linkedin.com/in/tianyi-li-v