Python读取Datadog导出CSV文件并做数据处理求助
解决方案
1. 读取Datadog CSV并提取最后一列
用Pandas可以高效处理CSV文件,直接提取最后一列并重命名:
import pandas as pd # 读取单个CSV文件 df = pd.read_csv("DataSource/extract-2023-02-02T19_10_32.790Z.csv") # 提取最后一列,设置自定义列名 target_col = df.iloc[:, -1].rename("目标指标") # 将"目标指标"替换为你需要的列名 # 批量读取并合并多个CSV文件 file_paths = [ "DataSource/extract-2023-02-02T19_10_32.790Z.csv", "DataSource/extract-2023-02-02T19_11_05.899Z.csv" ] all_target_data = [] for path in file_paths: temp_df = pd.read_csv(path) temp_col = temp_df.iloc[:, -1].rename("目标指标") all_target_data.append(temp_col) # 合并所有提取出的列数据 final_data = pd.concat(all_target_data, axis=0, ignore_index=True)
2. 数据聚合分析示例
基于提取出的列,可做以下常见聚合操作:
# 基础统计:均值、中位数、极值等 basic_stats = final_data.describe() print(basic_stats) # 若CSV包含时间列(Datadog导出通常带时间),可按时间维度聚合 # 假设第一列为时间列,先转换时间格式 time_col = pd.to_datetime(df.iloc[:, 0]) final_data = pd.concat([time_col, final_data], axis=1) # 按小时分组计算指标均值 hourly_avg = final_data.groupby(final_data.iloc[:, 0].dt.hour)["目标指标"].mean() print(hourly_avg) # 统计指标值出现频次 value_frequency = final_data["目标指标"].value_counts() print(value_frequency)
3. 搭建定时读取应用
用schedule实现简单定时(易上手)
先安装依赖:
pip install schedule
定时任务代码:
import schedule import time def process_datadog_csv(): # 这里复用上面的读取、提取、聚合逻辑 print("完成一次Datadog CSV数据读取与分析") # 设置定时规则:每天凌晨2点执行 schedule.every().day.at("02:00").do(process_datadog_csv) # 持续运行定时任务 while True: schedule.run_pending() time.sleep(60) # 每分钟检查一次任务状态
用APScheduler实现复杂定时(支持Cron表达式)
安装依赖:
pip install apscheduler
Cron风格定时示例:
from apscheduler.schedulers.blocking import BlockingScheduler def process_datadog_csv(): # 数据处理逻辑 print("完成一次Datadog CSV数据读取与分析") scheduler = BlockingScheduler() # 每天凌晨2点执行 scheduler.add_job(process_datadog_csv, 'cron', hour=2) # 也可设置每30分钟执行一次:scheduler.add_job(process_datadog_csv, 'interval', minutes=30) scheduler.start()
内容的提问来源于stack exchange,提问作者Shashank Singh
相关产品推荐
相关产品推荐

