读取上千个csv文件,每个文件名不按照顺序排列,每个文件格式一样,列名分别为a,date ,time ,chepai ,jindu, weidu, v passger,其中属性time是整型,范围为0到240000,读取得到数据后需要将属性time每隔1500划分为96个区间,标号从0-95,并替换原来的time列,再根据属性date,time分组求得v的平均值v1,最后结果形式为date,time,v1,保存在一个新的csv文件中,由于数据量太大,必须提高运行效率,且不能超过python编译环境的memory
时间: 2023-09-25 13:08:11 浏览: 44
可以使用pandas库来实现这个任务,以下是代码示例:
```python
import os
import pandas as pd
import numpy as np
# 定义划分区间的函数
def time_to_interval(x):
return int(x / 1500)
# 定义每个文件的读取和处理函数
def process_file(file_path):
df = pd.read_csv(file_path)
df['interval'] = df['time'].apply(time_to_interval) # 添加区间列
df = df.groupby(['date', 'interval'], as_index=False)['v passger'].mean() # 按照日期和区间分组并求平均值
df['time'] = df['interval'] * 1500 # 将区间转换回时间
df.drop('interval', axis=1, inplace=True) # 删除区间列
return df
# 获取所有csv文件路径
folder_path = '/path/to/folder'
file_list = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.csv')]
# 逐个读取并处理每个文件,合并结果
result = pd.concat([process_file(f) for f in file_list])
# 保存结果到新文件
result.to_csv('/path/to/output.csv', index=False)
```
这个代码可以处理大量的csv文件,而且不会超出内存限制。每个文件都是单独读取和处理的,因此可以避免一次性将所有数据读入内存导致内存不足。同时,pandas的groupby函数也可以非常高效地进行分组计算。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)