我喜欢将特定文件夹中的两个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)
似乎两行都在读取相同的文件,如何使它们读取不同的文件(第二个文件)?
答案 0 :(得分:2)
如果要创建数据框列表:
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])
另一种解决方案是使用文件名中dictionary of DataFrames
之后的最后一个子字符串创建关键字_
:
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'])