猿问

python - 如何使用 glob.glob 创建包含大量数据帧的字典

我使用以下代码创建了一个包含一堆数据框的字典


files = ('auction_aggregated_curves_germany_austria_20100101.csv', 'auction_aggregated_curves_germany_austria_20100102.csv', 'auction_aggregated_curves_germany_austria_20100103.csv', 'auction_aggregated_curves_germany_austria_20100104.csv', 'auction_aggregated_curves_germany_austria_20100105.csv')


dfs = ('df1', 'df2', 'df3', 'df4', 'df5')


list_of_dfs = {}

for df, file in zip(dfs, files):

       list_of_dfs[df] = pd.read_csv(file, skiprows=1)

但是我想知道是否有一种更简单的方法可以使用 glob.iglob 来调用一堆 cvs 文件,这些文件仅在最后一个数字中有所不同——它表示年、月和日的日期——。我有超过 365 个文件,如果有人可以帮助我避免编写所有文件名,那将非常有帮助。


叮当猫咪
浏览 146回答 1
1回答

心有法竹

您可以为此使用该pathlib模块。它包括一个glob方法。from pathlib import Pathdataframes = {}csv_root = Path(".")for csv_path in csv_root.glob("*.csv"):&nbsp; &nbsp; key = csv_path.stem&nbsp; # the filename without the ".csv" extension&nbsp; &nbsp; dataframes[key] = pd.read_csv(csv_path)将此代码与您的示例数据一起使用,dataframesdict 将如下所示:dataframes == {&nbsp; &nbsp; "auction_aggregated_curves_germany_austria_20100101": <DataFrame(...)>,&nbsp; &nbsp; "auction_aggregated_curves_germany_austria_20100102": <DataFrame(...)>,&nbsp; &nbsp; # etc...}
随时随地看视频慕课网APP

相关分类

Python
我要回答