同一文件夹下的csv文件批量提取几列形成新的文件
时间: 2024-03-09 13:50:38 浏览: 13
你可以使用Python中的pandas库来批量处理同一文件夹下的csv文件,提取几列形成新的文件。具体步骤如下:
1. 导入pandas库和os库
```
import pandas as pd
import os
```
2. 设置文件夹路径和要提取的列
假设你要处理的csv文件都在文件夹data中,文件夹路径为'./data/',而你要提取的列为第一列和第三列,可以使用以下代码:
```
folder_path = './data/'
columns_to_extract = ['列名1', '列名3']
```
其中,'列名1'和'列名3'是你要提取的列的名称。
3. 遍历文件夹中的所有csv文件并提取指定列
可以使用os库的listdir函数遍历指定文件夹中的所有文件,再针对每个csv文件提取指定列。具体代码如下:
```
for file_name in os.listdir(folder_path):
if file_name.endswith('.csv'):
file_path = os.path.join(folder_path, file_name)
df = pd.read_csv(file_path)
new_df = df[columns_to_extract]
new_file_name = os.path.splitext(file_name)[0] + '_extracted.csv'
new_file_path = os.path.join(folder_path, new_file_name)
new_df.to_csv(new_file_path, index=False)
```
其中,os.path.splitext(file_name)[0]可以获取文件名(不包括扩展名),再加上'_extracted.csv'作为新文件名。
综上所述,批量提取同一文件夹下的csv文件的指定列形成新的文件的完整代码如下:
```
import pandas as pd
import os
folder_path = './data/'
columns_to_extract = ['列名1', '列名3']
for file_name in os.listdir(folder_path):
if file_name.endswith('.csv'):
file_path = os.path.join(folder_path, file_name)
df = pd.read_csv(file_path)
new_df = df[columns_to_extract]
new_file_name = os.path.splitext(file_name)[0] + '_extracted.csv'
new_file_path = os.path.join(folder_path, new_file_name)
new_df.to_csv(new_file_path, index=False)
```