gpt4 book ai didi

Pandas删除数据的几种情况(小结)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Pandas删除数据的几种情况(小结)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

开始之前,pandas中dataframe删除对象可能存在几种情况 。

1、删除具体列 2、删除具体行 3、删除包含某些数值的行或者列 4、删除包含某些字符、文字的行或者列 。

本文就针对这四种情况探讨一下如何操作.

数据准备 。

模拟了一份股票交割的记录.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 证券卖出 中国联通

删除具体列 。

?
1
2
3
4
5
6
7
8
9
10
11
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 证券卖出 中国联通

删除具体行 。

?
1
2
3
4
5
6
7
8
9
10
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 证券卖出 成都银行

也可以根据行号删除记录,比如删除第三行 。

?
1
2
3
4
5
6
7
8
9
10
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) 。

?
1
2
3
4
5
in [ 7 ]: df[ df[ '成交金额' ] > 10000 ]
out[ 7 ]:
      成交数量  成交金额  摘要 证券名称
2018 - 2 - 2 1000 11000 证券卖出 成都银行
2018 - 2 - 3 1500 15000 证券卖出 中国联通

本例其实是筛选,如果需要保留,可以将筛选后的对象赋值给自己即可.

删除某列包含特殊字符的行 。

?
1
2
3
4
5
6
7
8
9
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 证券卖出 成都银行

如果想取包含某些字符的记录,可以去掉~ 。

?
1
2
3
4
5
in [ 12 ]: df[ df[ '证券名称' ]. str .contains( '联通' ) ]
out[ 12 ]:
      成交数量  成交金额  摘要 证券名称
2018 - 2 - 1 2000 - 20000 证券买入 中国联通
2018 - 2 - 3 1500 15000 证券卖出 中国联通

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://www.cnblogs.com/cocowool/p/8421997.html 。

最后此篇关于Pandas删除数据的几种情况(小结)的文章就讲到这里了,如果你想了解更多关于Pandas删除数据的几种情况(小结)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com