开始之前,pandas中DataFrame删除对象可能存在几种情况
1、删除具体列
2、删除具体行
3、删除包含某些数值的行或者列
4、删除包含某些字符、文字的行或者列
本文就针对这四种情况探讨一下如何操作。
数据准备
模拟了一份股票交割的记录。
In [1]: import pandas as pd In [2]: data = { ...: '证券名称' : ['格力电器','视觉中国','成都银行','中国联通','格力电器','视觉中国','成都银行','中国联通'], ...: '摘要': ['证券买入','证券买入','证券买入','证券买入','证券卖出','证券卖出','证券卖出','证券卖出'], ...: '成交数量' : [500,1000,1500,2000,500,500,1000,1500], ...: '成交金额' : [-5000,-10000,-15000,-20000,5500,5500,11000,15000] ...: } ...: In [3]: df = pd.DataFrame(data, index = ['2018-2-1','2018-2-1','2018-2-1','2018-2-1','2018-2-2','2018-2-2','2018-2-2','2018-2-3']) In [4]: df Out[4]: 成交数量 成交金额 摘要 证券名称 2018-2-1 500 -5000 证券买入 格力电器 2018-2-1 1000 -10000 证券买入 视觉中国 2018-2-1 1500 -15000 证券买入 成都银行 2018-2-1 2000 -20000 证券买入 中国联通 2018-2-2 500 5500 证券卖出 格力电器 2018-2-2 500 5500 证券卖出 视觉中国 2018-2-2 1000 11000 证券卖出 成都银行 2018-2-3 1500 15000 证券卖出 中国联通
删除具体列
In [5]: df.drop('成交数量',axis=1) Out[5]: 成交金额 摘要 证券名称 2018-2-1 -5000 证券买入 格力电器 2018-2-1 -10000 证券买入 视觉中国 2018-2-1 -15000 证券买入 成都银行 2018-2-1 -20000 证券买入 中国联通 2018-2-2 5500 证券卖出 格力电器 2018-2-2 5500 证券卖出 视觉中国 2018-2-2 11000 证券卖出 成都银行 2018-2-3 15000 证券卖出 中国联通
删除具体行
In [6]: df.drop('2018-2-3') Out[6]: 成交数量 成交金额 摘要 证券名称 2018-2-1 500 -5000 证券买入 格力电器 2018-2-1 1000 -10000 证券买入 视觉中国 2018-2-1 1500 -15000 证券买入 成都银行 2018-2-1 2000 -20000 证券买入 中国联通 2018-2-2 500 5500 证券卖出 格力电器 2018-2-2 500 5500 证券卖出 视觉中国 2018-2-2 1000 11000 证券卖出 成都银行
也可以根据行号删除记录,比如删除第三行
In [22]: df.drop(df.index[7]) Out[22]: 成交数量 成交金额 摘要 证券名称 2018-2-1 500 -5000 证券买入 格力电器 2018-2-1 1000 -10000 证券买入 视觉中国 2018-2-1 1500 -15000 证券买入 成都银行 2018-2-1 2000 -20000 证券买入 中国联通 2018-2-2 500 5500 证券卖出 格力电器 2018-2-2 500 5500 证券卖出 视觉中国 2018-2-2 1000 11000 证券卖出 成都银行
注意,这个办法其实不是按照行号删除,而是按照索引删除。如果index为3,则会将前4条记录都删除。这个方法支持一个范围,以及用负数表示从末尾删除。
删除特定数值的行(删除成交金额小于10000)
In [7]: df[ df['成交金额'] > 10000] Out[7]: 成交数量 成交金额 摘要 证券名称 2018-2-2 1000 11000 证券卖出 成都银行 2018-2-3 1500 15000 证券卖出 中国联通
本例其实是筛选,如果需要保留,可以将筛选后的对象赋值给自己即可。
删除某列包含特殊字符的行
In [11]: df[ ~ df['证券名称'].str.contains('联通') ] Out[11]: 成交数量 成交金额 摘要 证券名称 2018-2-1 500 -5000 证券买入 格力电器 2018-2-1 1000 -10000 证券买入 视觉中国 2018-2-1 1500 -15000 证券买入 成都银行 2018-2-2 500 5500 证券卖出 格力电器 2018-2-2 500 5500 证券卖出 视觉中国 2018-2-2 1000 11000 证券卖出 成都银行
如果想取包含某些字符的记录,可以去掉~
In [12]: df[ df['证券名称'].str.contains('联通') ] Out[12]: 成交数量 成交金额 摘要 证券名称 2018-2-1 2000 -20000 证券买入 中国联通 2018-2-3 1500 15000 证券卖出 中国联通
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
Pandas,删除数据
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Pandas删除数据的几种情况(小结)”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年01月11日
2025年01月11日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]