提取数据求平均合并数据python代码

对一个文件夹下的所有文件进行处理,所有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')

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值