我正在阅读多个csv,每个csv都包含有关单个股票的数据。我正在使用下面的代码单独阅读它们以进行比较。数据可以很好地使用,但是读入时我丢失了csv文件的名称。因此我不知道哪个数据框是python中的哪个库存。有没有办法用csv文件的名称记录或标记每个数据帧?
path =r'/Users/Name/Desktop/STAT 3250 Data Analysis With Python/Stocks'
filenames = glob.glob(path + "/*.csv")
allsep = []
for filename in filenames:
df = pd.read_csv(filename, index_col=None)
allsep.append(df)
答案 0 :(得分:0)
使用字典。
path =r'/Users/Name/Desktop/STAT 3250 Data Analysis With Python/Stocks'
filenames = glob.glob(path + "/*.csv")
allsep = {}
for filename in filenames:
df = pd.read_csv(filename, index_col=None)
allsep[filename] = df
您可以使用文件名访问每个文件的DF:
allsep['somefile.csv']
答案 1 :(得分:0)
这是您要寻找的吗?:
path =r'/Users/Name/Desktop/STAT 3250 Data Analysis With Python/Stocks'
filenames = glob.glob(path + "/*.csv")
allsep = []
for filename in filenames:
df = pd.read_csv(filename, index_col=None)
allsep.append((df,filename))
列表中的每个文件现在都是一个元组,具有对应的文件名。如果您希望能够引用数据框本身作为文件名,则可以将其添加为属性,并稍后引用:
path =r'/Users/Name/Desktop/STAT 3250 Data Analysis With Python/Stocks'
filenames = glob.glob(path + "/*.csv")
allsep = []
for filename in filenames:
df = pd.read_csv(filename, index_col=None)
df.name = filename
allsep.append()
答案 2 :(得分:0)
您可以向每个Dataframe实例添加属性(例如filename
)。
path =r'/Users/Name/Desktop/STAT 3250 Data Analysis With Python/Stocks'
filenames = glob.glob(path + "/*.csv")
allsep = []
for filename in filenames:
df = pd.read_csv(filename, index_col=None)
df.filename = filename
allsep.append(df)
添加此属性后,可以将其用作常规属性。例如,如果您需要一个包含所有文件名的列表,则可以执行以下操作:
filenames = list(map(getattr, allsep, ['filename']*len(allsep)))
或者您可以通过常规方式访问属性:df.filename
。