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()

数据筛选效果

猜你喜欢

转载自blog.csdn.net/Humbunklung/article/details/141439274