Pandas DataFrame 数据转换处理和多条件查询

工作中需要处理一个比较大的数据,且当中需要分析的日期类型字段为字符串型,需要进行转换,获得一个新的字段用于时间统计。我们应用 datetime.datetime.strptime 函数进行转换。

数据读取与时间列补充代码如下:

import pandas as pd
import datetime

df = pd.read_csv('SCADA_HISTORY.csv')
# 给DataFrame增加一列标记时间
df['KM_DateTime'] = [datetime.datetime.strptime(datestr, '%d/%m/%Y %H:%M:%S') for datestr in df['KM_MDate']]

多条件查询数据集

选取数据集中 CODE 列中为 123456KM_DateTime列大于等于 2022-07-01 的行。

filtered_data = df[(df['CODE'] == '123456') & (df['KM_DateTime'] >= datetime.datetime(2022, 7, 1))]
result = filtered_data.copy() # 复制供后续处理

查询某一天的数据

基于上述结果,查询某一天的数据并排序输出。

import matplotlib.pyplot as plt
data = result[(result['KM_DateTime'] >= datetime.datetime(2022, 8, 1)) & (result['KM_DateTime'] < datetime.datetime(2022, 8, 2)) ]\
    .sort_values(by='KM_DateTime')
plt.figure(figsize=(20, 10))
plt.plot(data['KM_DateTime'], data['KM_MValue'])
plt.grid(axis='both', color='gray', linestyle='--', alpha=0.5)
plt.show()

数据筛选效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Humbunklung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值