Python 从文件夹中的文件创建多个数据帧
我有一个文件夹,里面有很多文件。我想创建一个循环或函数,在这里我可以读取所有文件,并使用前缀格式Python 从文件夹中的文件创建多个数据帧,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个文件夹,里面有很多文件。我想创建一个循环或函数,在这里我可以读取所有文件,并使用前缀格式'filename'+\u df为每个文件创建相应的数据帧 我有一段代码,可以读取所有内容并从文件夹中的所有文件创建一个大数据帧,但我不确定如何修改它以创建多个数据帧并使用文件名作为前缀: import os import pandas as pd path = os.path.join(os.getcwd(),'folder') files = [os.path.join(path,i) for
'filename'+\u df
为每个文件创建相应的数据帧
我有一段代码,可以读取所有内容并从文件夹中的所有文件创建一个大数据帧,但我不确定如何修改它以创建多个数据帧并使用文件名作为前缀:
import os
import pandas as pd
path = os.path.join(os.getcwd(),'folder')
files = [os.path.join(path,i) for i in os.listdir(path) if os.path.isfile(os.path.join(path,i))]
df = pd.DataFrame()
for file in files:
_df = pd.read_csv(file)
df = df.append(_df)
如果有更好的方法,那也很好。您可以在字典理解中创建数据帧字典:
dfs = {f'{file}_df': pd.read_csv(file) for file in files}
然后,对于每个数据帧,按键选择,例如,file='myfile'
:
dfs['myfile_df']
感谢@Abdul Niyas p M的创意:
from pathlib import Path
dfs = {f'{Path(file).stem}_df': pd.read_csv(file) for file in files}
或:
您可以将所有数据帧存储到列表中。然后将所有数据帧合并为一个。我不想创建单个数据帧。我想在OP中为每个文件创建一个数据帧,
文件
看起来像一个abs路径列表。可能您可以使用Pathlib
仅获取文件名dfs={f'{Path(file).stem}\u df:pd.read\u csv(file)for file in files}
import os
dfs = {f'{os.path.basename(file)}_df': pd.read_csv(file) for file in files}