I am trying to use Python functions to perform data preprocessing. I want to have efficient code. I have like 8 files that I am reading to load them and do some sort of analysis. How would one achieve that using a function and the .head() to read all the CSV files?
For instance instance I have loaded my data from One drive as follows.
if 'myName' in user or user == '/Users/rick':
file1 = pd.read_csv(path '/Data Exports/file1.csv')
file2 = pd.read_csv(path '/Data Exports/file2.csv')
file3 = pd.read_csv(path '/Data Exports/file3.csv')
file4 = pd.read_csv(path '/Data Exports/file4.csv')
file5 = pd.read_csv(path '/Data Exports/file5.csv')
file6 = pd.read_csv(path '/Data Exports/file6.csv')
file7 = pd.read_csv(path '/Data Exports/file7.csv')
file8 = pd.read_csv(path '/Data Exports/file8.csv')
How would I write a .head() to inspect the top 5 rows of all the loaded files?
CodePudding user response:
When manipulating type-identical object, you may use a list
dfs = []
if 'myName' in user or user == '/Users/rick':
for i in range(1, 9):
dfs.append(pd.read_csv(path f'/Data Exports/file{i}.csv'))
for df in dfs:
print(df.head())
CodePudding user response:
list or map comprehension would be better imo
import glob
# list
datas = [
pd.read_csv(f'{path}/Data Exports/file{i}.csv')
for i in range(1, 9)
if ('myName' in user or user == '/Users/rick')
]
# list whatever csv file name, will read all csv files
datas = [
pd.read_csv(filepath)
for filepath in glob.glob(f'{path}/Data Exports/*.csv')
if ('myName' in user or user == '/Users/rick')
]
# map
datas = {
"file%s" % i: pd.read_csv(f'{path}/Data Exports/file{i}.csv')
for i in range(1, 9)
if ('myName' in user or user == '/Users/rick')
}