对一个文件夹下的所有文件进行处理,所有csv数据需格式一样
我的数据第一列为时间,因为我需要求十分钟平均,
代码按照纵向拼接合并
这个代码设定了条件提取满足条件的行数据,并求平均后合并
```python
import pandas as pd
import numpy as np
import os
folder_path = 'D:/20240505/'
file_list = os.listdir(folder_path)
all_data6 = []
all_data7 = []
time_column = 'time'
i = 0
for file_name in file_list:
if file_name.endswith("csv"):
file_path = os.path.join(folder_path, file_name)
df = pd.read_csv(file_path, index_col=None, encoding='gbk', parse_dates=['time'])
# 选择第四列(索引为3)等于'6'的行
filtered_df6 = df[df.iloc[:, 4] == 6] # 假设第四列是你要检查的列,这样得到的就是第四列等于6的所有数据
filtered_df6[time_column] = pd.to_datetime(filtered_df6['time'])
filtered_df6.set_index(time_column, inplace=True)
df_rolled6 = filtered_df6.groupby(pd.Grouper(freq='10T')).mean() #按时间求平均时需要将时间列转换为时间格式并且设置为索引
all_data6.append(df_rolled6)
filtered_df7 = df[df.iloc[:, 4] == 7] # 假设第四列是你要检查的列
filtered_df7[time_column] = pd.to_datetime(filtered_df7['time'])
filtered_df7.set_index(time_column, inplace=True)
df_rolled7 = filtered_df7.groupby(pd.Grouper(freq='10T')).mean()
all_data7.append(df_rolled7)
i += 1
print(i)
合并多个 DataFrame 成一个 DataFrame
data6 = pd.concat(all_data6)
data6.to_csv('F:/20240505_6.csv')
data7 = pd.concat(all_data7)
data7.to_csv('F:/20240505_7.csv')