Я хотел бы итеративно читать несколько файлов csv из списка в pandas и загружать их в их отдельные и соответствующие фреймы данных. Я пока не смог разобраться. Вот что у меня есть:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
file_list = [
'calendar.csv'
,'sales_train_validation.csv'
,'sample_submission.csv'
,'sell_prices.csv'
]
class Data:
def __init__(self):
'''init data class'''
self.data = None
# Function to read file basename
def file_basename_reader(file_name):
basename = file_name.split('.')[0]
return basename
# Function to read file extension
def file_ext_reader(file_name):
ext = file_name.split('.')[-1]
return ext
# Function to load file
def load_file(file_name):
'''loads data from excel, csv, or txt file'''
if Data.file_ext_reader(file_name) in ['xls','xlsx','xlsm','xlb']:
return pd.read_excel(file_name)
elif Data.file_ext_reader(file_name) == 'csv':
return pd.read_csv(file_name)
elif Data.file_ext_reader(file_name) == 'txt':
return pd.read_table(file_name)
else:
raise ValueError('Invalid file format. Please check file extension to be excel, csv, or txt.')
# Function to read list of file names and iteratively create data frames
def create_dataframe(file_list):
global df
global data_df
df = ['calendar_df','sales_train_validation_df','sample_submission_df','sell_prices_df']
for file in range(len(file_list)):
df = Data.load_file(file_list[file])
Data.create_dataframe(file_list)
Когда я запускал Data.create_dataframe (file_list), я надеялся получить 4 фрейма данных ('calendar_df', 'sales_train_validation_df ',' sample_submission_df ',' sell_prices_df '). Когда я читаю .head (), для этих 4 фреймов данных ничего не возвращается. Единственный возврат - для df.head (). Какое исправление следует применить к функции create_dataframe (file_list)?