Monkey D
Monkey D

Reputation: 69

Reading multiple CSV files and merge Python Pandas

I am reading specific csv files names based on their name with this code:

csv_names = [s for s in files_csv if "drive" in s]

output:

['drive_1.csv',
 'drive_2.csv',
 'drive_3.csv',
 'drive_4.csv']

How can i merge those files easy?

I am know doing this:

df = pd.read_csv(csv_names[0], sep=';', header=None) 
df1 = pd.read_csv(csv_names[1], sep=';', header=None)
df2 = pd.read_csv(csv_names[2], sep=';', header=None)
df3 = pd.read_csv(csv_names[3], sep=';', header=None)

I don't want to read them one by one. And then merge them. I hope someone has a great idea.

Upvotes: 2

Views: 802

Answers (2)

Muhammad Arbaz
Muhammad Arbaz

Reputation: 11

import pandas as pd
df = pd.DataFrame()
for csv in csv_name:
    df = pd.concat([df, pd.read_csv(csv, sep=';', header=None)])
df.to_csv('Merged_Data_Frame.csv', index=False)

Hope this helps. This will merge and save them to csv for later use.

Upvotes: 0

Andreas
Andreas

Reputation: 9197

You can use pd.concat and a list comprehension:

df = pd.concat([pd.read_csv(csv_name, sep=';', header=None) for csv_name in csv_names])

Upvotes: 1

Related Questions