使用pandas将多个csv文件读入单独的数据框架中

5
我想从特定文件夹中读取两个csv文件到两个单独的数据框中。
这两个文件名分别是:23314621_MACI_NAV.CSV和23314623_MACI_Holding.CSV。
文件名的第二部分固定为MACI_NAV.CSV和MACI_Holding.CSV,但是文件名的第一部分是数字,每天都会变化。
我尝试通过以下方式将它们读入到两个不同的数据框中:
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)

看起来这两行都在读取同一个文件,我该如何让它们读取不同的文件(第二个文件)?

1个回答

8
如果想要创建数据帧列表:
dfs = []
for file in mscifile:
    df = pd.read_csv(file)
    dfs.append(df)

或使用列表推导式:

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

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

另一种解决方案是创建一个名为“文件名中下划线后的最后一个子字符串”的键的DataFrame字典:
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'])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接