如何高效读取目录中含NS字符串的文件并合并为DataFrame
高效读取并合并含指定字符串的CSV文件
直接用Python的glob和pandas库就能高效实现需求,步骤如下:
1. 导入依赖库
import pandas as pd import glob
2. 匹配所有含'NS'的CSV文件
用glob.glob()快速匹配符合规则的文件路径,通配符*表示任意字符:
# 替换为你的文件夹路径,./表示当前目录,也可以写绝对路径比如'/home/user/data/' file_paths = glob.glob('./your_folder_path/*NS*.csv')
该语句会返回所有文件名包含NS的CSV文件的完整路径列表。
3. 批量读取并合并文件
用列表推导式批量读取每个文件为DataFrame,再通过pd.concat()合并成一个大DataFrame:
# 批量读取文件,ignore_index=True重置索引避免重复 merged_df = pd.concat([pd.read_csv(file) for file in file_paths], ignore_index=True)
可选优化(针对大文件场景)
如果文件体积较大,为减少内存占用可做以下调整:
- 读取时指定数据类型:
pd.read_csv(file, dtype={'列名': '类型'}),比如把整数列指定为int32而非默认的int64 - 分块读取合并(适合单个文件超出内存的情况):
chunk_list = [] for file in file_paths: # chunksize根据内存情况调整 for chunk in pd.read_csv(file, chunksize=10000): chunk_list.append(chunk) merged_df = pd.concat(chunk_list, ignore_index=True)
内容的提问来源于stack exchange,提问作者jo_
相关产品推荐
相关产品推荐

