我只想从我的所有 csv 文件中获取第 4 列中的数据,并将数据写入单个文件。每个第 4 列都有一个唯一的标题名称,其中包含根文件夹的名称+csv 名称,如 FolderA1
文件夹A/
1.csv |INFO INFO INFO FolderA1 INFO
Apple Apple Apple Orange Apple
2.csv |INFO INFO INFO FolderA2 INFO
Apple Apple Apple Cracker Apple
3.csv |INFO INFO INFO FOLDERA3 INFO
Apple Apple Apple Orange Apple
我如何才能将第 4 列数据过滤到单个 .xlsx 文件中,并将下一个文件夹 csv 放入新工作表或将其与之前的文件夹 csv 分开?
concentrated.xlsx | FOLDERA1 FOLDERA2 FOLDERA3 FOLDERB1 FOLDERB2 FOLDERB3
ORANGE CRACKER ORANGE ORANGE CRACKER ORANGE
请您参考如下方法:
我会使用 pandas.read_csv 附带的 usecols 参数。
def read_4th(fn):
return pd.read_csv(fn, delim_whitespace=1, usecols=[3])
files = ['./1.csv', './2.csv', './3.csv']
big_df = pd.concat([read_4th(fn) for fn in files], axis=1)
big_df.to_excel('./mybigdf.xlsx')
对于多个文件夹,使用 glob。
假设您有两个文件夹“FolderA”和“FolderB”,它们都位于文件夹“./”中,并且您想要两个文件夹中的所有 csv 文件。
from glob import glob
files = glob('./*/*.csv')
然后按照上面指定的方式运行其余部分。
