读取一个文件夹下所有CSV表格,并计算pm2.5列的IAQI指数,然后分别保存到与原CSV表格相同命名的文件夹下
时间: 2024-05-15 12:19:24 浏览: 67
以下是Python代码示例:
```python
import os
import pandas as pd
# 定义IAQI计算函数
def calc_iaqi(pm25):
breakpoints = [0, 35, 75, 115, 150, 250, 350, 500]
iaqi_list = [0, 50, 100, 150, 200, 300, 400, 500]
if pm25 <= breakpoints[0]:
return iaqi_list[0]
elif pm25 > breakpoints[-1]:
return iaqi_list[-1]
else:
for i in range(1, len(breakpoints)):
if pm25 <= breakpoints[i]:
return round((iaqi_list[i] - iaqi_list[i-1]) / (breakpoints[i] - breakpoints[i-1]) * (pm25 - breakpoints[i-1]) + iaqi_list[i-1])
# 待处理文件夹路径
folder_path = 'path/to/folder'
# 遍历文件夹中的所有CSV文件
for file_name in os.listdir(folder_path):
if file_name.endswith('.csv'):
file_path = os.path.join(folder_path, file_name)
# 读取CSV文件
df = pd.read_csv(file_path)
# 计算pm2.5列的IAQI指数
df['IAQI'] = df['pm2.5'].apply(calc_iaqi)
# 保存到与原CSV表格相同命名的文件夹下
output_path = os.path.join(folder_path, 'IAQI_' + file_name)
df.to_csv(output_path, index=False)
```
上述代码中,首先定义了一个`calc_iaqi`函数,用于计算给定的pm2.5值的IAQI指数。然后遍历了待处理文件夹中的所有CSV文件,并对每个文件进行如下处理:
1. 读取CSV文件为一个`DataFrame`对象。
2. 在`DataFrame`对象中新增一个名为`IAQI`的列,计算该列的值为pm2.5列的IAQI指数。
3. 将处理后的`DataFrame`对象保存到与原CSV表格相同命名的文件夹下,文件名为以`IAQI_`为前缀的原文件名。
阅读全文