聚合特定文件夹的未知 csv 文件
Aggregating the unknown csv files for a particular folder
我的文件夹中有一些 csv 文件。
water
文件夹有 water_202201.csv
、 water_202202.csv
和 water_202203.csv
。我想聚合这 3 个文件。当然,我可以像下面的代码那样做。
import pandas as pd
import numpy as np
#-*-coding:utf-8-*-
dat1=pd.read_csv("C:/water/water_202201.csv")
dat2=pd.read_csv("C:/water/water_202202.csv")
dat3=pd.read_csv("C:/water/water_202202.csv")
frames=[data1,data2,data3]
result1=pd.concat(frames)
result1
但问题是如果我不知道 water
文件夹中有多少 csv 文件并且我想以某种方式聚合该文件夹中的每个 csv 文件,如何聚合。
202201 表示 2022 年 1 月
您可以使用 pathlib
遍历您的文件夹:
import pathlib
data = {}
for file in pathlib.Path('C:/water').glob('water_*.csv'):
date = file.stem.split('_')[-1] # extract 202201 for water_202201.csv
df = pd.read_csv(file)
data[date] = df
# One-line version
data = {file.stem.split('_')[1]: pd.read_csv(file)
for file in pathlib.Path('./data/water').glob('water_*.csv')}
现在有 2 种可能性:
使用 date
键作为索引前缀:
df = pd.concat(data)
没有前缀:
df = pd.concat(data.values())
我的文件夹中有一些 csv 文件。
water
文件夹有 water_202201.csv
、 water_202202.csv
和 water_202203.csv
。我想聚合这 3 个文件。当然,我可以像下面的代码那样做。
import pandas as pd
import numpy as np
#-*-coding:utf-8-*-
dat1=pd.read_csv("C:/water/water_202201.csv")
dat2=pd.read_csv("C:/water/water_202202.csv")
dat3=pd.read_csv("C:/water/water_202202.csv")
frames=[data1,data2,data3]
result1=pd.concat(frames)
result1
但问题是如果我不知道 water
文件夹中有多少 csv 文件并且我想以某种方式聚合该文件夹中的每个 csv 文件,如何聚合。
202201 表示 2022 年 1 月
您可以使用 pathlib
遍历您的文件夹:
import pathlib
data = {}
for file in pathlib.Path('C:/water').glob('water_*.csv'):
date = file.stem.split('_')[-1] # extract 202201 for water_202201.csv
df = pd.read_csv(file)
data[date] = df
# One-line version
data = {file.stem.split('_')[1]: pd.read_csv(file)
for file in pathlib.Path('./data/water').glob('water_*.csv')}
现在有 2 种可能性:
使用 date
键作为索引前缀:
df = pd.concat(data)
没有前缀:
df = pd.concat(data.values())