数据分析数据预处理:重复值(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"})
相关推荐
2601_962293244 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293795 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
airank6 小时前
2026年GEO服务商选型指南:系统梳理服务商分类框架、主流服务商能力横评、企业级选型六大维度及避坑要点,帮助企业在AI搜索时代做出科学决策。
大数据·人工智能·数据分析·aigc
Java后端的Ai之路6 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_962077717 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert7 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴8 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
m0_380743879 小时前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
2601_962297489 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
“AI国潮设计-小江”9 小时前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc