数据分析数据预处理:重复值(duplicated方法)

高频数据的重复值处理

数据源为高频 trades 数据

1. 导入数据

复制代码
import pandas as pd

df = pd.read_csv('hf_data.csv')

print(df)

2. duplicate方法查看重复值

(1)subset 参数指定columns name

复制代码
df.duplicated(subset='localtime').sum()

subset指定localtime判断是否存在重复值,返回bool

复制代码
check_localtime = df.duplicated(subset='localtime')

df[check_localtime>0].tail(20)

可以看到同个时间戳有多笔成交。

3. 重复值处理

针对不同的数据需求,最简单的三种重复值处理方法。

(1)drop_duplicated() 直接删除掉重复数据

复制代码
df_drop_duplicate = df.drop_duplicates(subset='localtime')

print("原数据shape",df.shape)
print("删除重复值后数据shape",df_drop_duplicate.shape)
print("检验重复值,",df_drop_duplicate.duplicated().sum())

可以看到重复数据占比还是比较多的,若重复数据有意义,比如该数据描述的是 交易数据,则当同个时间戳有多个交易数据描述了当下市场的活跃情况;因此用该方案做数据处理并不一定合适。

(2)保留重复值中的第一个或最后一个:drop_duplicated的keep参数

复制代码
df_keep_last = df.drop_duplicates(subset='localtime',keep='last')

当我们想保留重复数据最后一个值,可以使用drop_duplicated的keep参数,"last"为最后一个值,"first"为第一个值。

(3)使用groupby对重复值做运算

分析原数据:localtime重复是因为同个时间多笔成交单形成,其次数据中有其他的属性比如价格(price),成交量(qty),交易方向(side);因此比较合适的处理方法是将数据时间戳合并到最小单位1ms,而针对不同的属性,可以采取:保留最后一个价格,总成交量等等;这样即处理了重复值的问题,也保留了数据中的信息

复制代码
df.groupby(by='localtime').agg({'qty':"sum",'price':"last"})
相关推荐
happylifetree5 小时前
Python09:核心语法-数据存储与运算-字面量
python
心之语歌5 小时前
Tkinter 画布基本梳理
运维·服务器·python
Wx-bishekaifayuan5 小时前
django个性化旅游路线推荐平台49005-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
小白快快跑哦6 小时前
python-字符串全解(六):正则表达式-量词
python·正则表达式·字符串
禹凕7 小时前
机器学习之Selenium(Machina Learning about Selenium)
爬虫·python·selenium·测试工具·机器学习
ebiobiz8 小时前
基于 GD32 Embedded Builder (GEB) 与 Nimmake 的 MCU 工程搭建指南
c++·python·单片机·嵌入式硬件·mcu
老歌老听老掉牙9 小时前
穿越时空的物流密码:VRP与VRPTW的深度剖析及实战求解
python·物流·vrp
FYKJ_20109 小时前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
ShyanZh9 小时前
【Python3基础】13-Python 常用设计模式
开发语言·python·设计模式
IT毕设梦工厂9 小时前
计算机毕业设计选题推荐:基于大数据的杭州亚运会社交媒体互动数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·信息可视化·数据挖掘·数据分析·课程设计·数据分析数据可视化