5

I like to read two csv files from a particular folder into two separate dataframes.

The two file names are: 23314621_MACI_NAV.CSV and 23314623_MACI_Holding.CSV

The file second part of the file names are fixed MACI_NAV.CSV and MACI_Holding.CSV, however the first part of the file name which are numbers change everyday.

I like to read them into two different dataframe by trying this:

import pandas as pd
import glob

msci_folder = 'N:/Operation/Daily CDS E_Report/CDS/MACI/'
mscifile = glob.glob(msci_folder + "\*.csv")

for file in mscifile:
    df_nav=pd.read_csv(file)
    df_holding=pd.read_csv(file)

It seems like both lines are reading the same file, how do I make them read different files (second file)?

2 Answers 2

8

If want create list of DataFrames:

dfs = []
for file in mscifile:
    df = pd.read_csv(file)
    dfs.append(df)

Or use list comprehension:

dfs = [pd.read_csv(file) for file in mscifile]

print (dfs[0])
print (dfs[1])

Another solution is create dictionary of DataFrames with keys by last substring after _ in filename:

from os.path import splitext, basename

dfs = {splitext(basename(fp))[0].split('_')[-1] : pd.read_csv(fp) for fp in mscifile}
print (dfs)

print (dfs['NAV'])
print (dfs['Holding'])
Sign up to request clarification or add additional context in comments.

Comments

0

you can do something like this.

import pandas as pd
import glob

msci_folder = 'N:/Operation/Daily CDS E_Report/CDS/MACI/'

mscifiles = glob.glob(msci_folder + "*.csv")

# Initialize variables to hold the dataframes
df_nav = None
df_holding = None

# Iterate over the list of files to find the specific ones
for file in mscifiles:
    # Check if the file name ends with 'MACI_NAV.CSV'
    if 'MACI_NAV.CSV' in file:
        df_nav = pd.read_csv(file)
        print(f"Loaded NAV file: {file}")
    # Check if the file name ends with 'MACI_Holding.CSV'
    elif 'MACI_Holding.CSV' in file:
        df_holding = pd.read_csv(file)
        print(f"Loaded Holding file: {file}")

# Now df_nav and df_holding will contain the data from the respective CSVs

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.