Every month I am downloading the whole ledger in csv format and saving the same to a folder. How I can read it in pandas as single dataframe
Asked
Active
Viewed 2.0k times
2
-
1Does this answer your question? [Import multiple csv files into pandas and concatenate into one DataFrame](https://stackoverflow.com/questions/20906474/import-multiple-csv-files-into-pandas-and-concatenate-into-one-dataframe) – Ravi Dec 03 '20 at 19:51
3 Answers
8
fthomson's answer but the last line should be
import pandas as pd
import glob
files = glob.glob("path/*.csv")
df = pd.DataFrame()
for f in files:
csv = pd.read_csv(f)
df = df.append(csv)

Sabzaliev Shukur
- 361
- 5
- 12
-
3This answer is NOT it. Never append DataFrames repeatedly in a loop as it repeatedly allocated memory! Every `df.append` copies the entire DataFrame. ni1o1's answer is to be used. – Make42 Jan 21 '22 at 15:02
7
This is a faster way. Append small DataFrame after large DataFrame will cost a lot. So a better way is to append all DataFrame into one list and use pd.concat
to concat all DataFrame.
import pandas as pd
import glob
files = glob.glob("path/*.csv")
df = []
for f in files:
csv = pd.read_csv(f)
df.append(csv)
df = pd.concat(df)

ni1o1
- 71
- 1
- 3
2
I'm doing this from memory but this is the general idea
import pandas as pd
import glob
files = glob.glob("path/*.csv")
df = pd.DataFrame()
for f in files:
csv = pd.read_csv(f)
df = df.append(csv)

fthomson
- 773
- 3
- 9