python里的df_python – 从pandas df中删除行
我想删除pandas df中的所有行.具体来说,当Col A中X下方的行为空时.因此,如果Col A中X下面的行为空,我想删除所有这些行,直到值X下面有一个字符串
import pandas as pd
d = ({
'A' : ['X','','','X','Foo','','X','Fou','','X','Bar'],
'B' : ['Val',1,3,'Val',1,3,'Val',1,3,'Val',1],
'C' : ['Val',2,4,'Val',2,4,'Val',2,4,'Val',2],
})
df = pd.DataFrame(data=d)
输出:
A B C
0 X Val Val
1 1 2
2 3 4
3 X Val Val
4 Foo 1 2
5 3 4
6 X Val Val
7 Fou 1 2
8 3 4
9 X Val Val
10 Bar 1 2
我试过了:
df = df[~(df['A'] == 'X').shift().fillna(False)]
但是这会删除X后跟的所有内容.如果X下面的下一行为空,我只希望删除它.
意:
A B C
0 X Val Val
1 Foo 1 2
2 3 4
3 X Val Val
4 Fou 1 2
5 4 4
6 X Val Val
7 Bar 1 2
最佳答案 使用:
m1 = df['A'] == 'X'
g = m1.cumsum()
m = (df['A'] == '') | m1
df = df[~m.groupby(g).transform('all')]
print (df)
A B C
3 X Val Val
4 Foo 1 2
5 3 4
6 X Val Val
7 Fou 1 2
8 3 4
9 X Val Val
10 Bar 1 2
细节:
m1 = df['A'] == 'X'
g = m1.cumsum()
m = (df['A'] == '') | m1
print (pd.concat([df,
df['A'] == 'X',
m1.cumsum(),
(df['A'] == ''),
m,
m.groupby(g).transform('all'),
~m.groupby(g).transform('all')], axis=1,
keys=['orig','==X','g','==space','m', 'all', 'inverted all']))
orig ==X g ==space m all inverted all
A B C A A A A A A
0 X Val Val True 1 False True True False
1 1 2 False 1 True True True False
2 3 4 False 1 True True True False
3 X Val Val True 2 False True False True
4 Foo 1 2 False 2 False False False True
5 3 4 False 2 True True False True
6 X Val Val True 3 False True False True
7 Fou 1 2 False 3 False False False True
8 3 4 False 3 True True False True
9 X Val Val True 4 False True False True
10 Bar 1 2 False 4 False False False True
说明:
>比较X并创建组的累计总和从X到g开始
>链2布尔掩码 – 将X和空白空间与m进行比较
> groupby with transform and DataFrameGroupBy.all for return Trues for groups only only True
>最后反转并按boolean indexing过滤
python里的df_python – 从pandas df中删除行相关推荐
- panda是删除行_如何从Pandas数据帧中删除行列表?
如何从Pandas数据帧中删除行列表? 我有一个数据帧df: >>> df sales discount net_sales cogs STK_ID RPT_Date 600141 ...
- python里的shell是什么_python中的shell操作
http://blog.csdn.net/meng_tianshi/article/details/6682317 首先介绍一个函数: os.system(command) 这个函数可以调用shell ...
- 前锋python百度云_关于python:使用索引在pandas DataFrame中设置特定单元格的值
我创建了一个熊猫数据框架 df = DataFrame(index=['A','B','C'], columns=['x','y']) 得到了这个 x y A NaN NaN B NaN ...
- python里dir是什么意思_python中dir什么作用
python中dir的作用是:1.dir函数传入数据类型返回该数据类型的所有内置方法:2.dir函数传入模块名返回该模块的所有属性和方法. dir() 内置函数的作用 python 内置方法有很多,无 ...
- python里object是什么类型_Python中的object这个叫做基类的类,它的属性和行为都有哪些?...
声明:以下仅为个人学习Python过程中总结的比较自洽的理解,事实上Python面向对象模型可能没那么简单.经查阅,Python在以前的版本还有不继承自object的类,叫做经典类. 用dir(obj ...
- python里的关键字有哪些_Python中的yield关键字做了什么?
Python中的yield关键字做了什么 要理解yield做了什么,就必须明白生成器(generators)为何物,而在明白生成器之前还要知道迭代器(iterables). 1.迭代器 当我们创建一个 ...
- python里compile的作用_Python代码中compile()函数具有哪些功能呢?
摘要: 下文讲述Python代码中compile()函数的功能说明,如下所示: compile()函数功能说明 compile()函数功能: 用于将一个字符串编译为字节代码 compile()函数语法 ...
- python里的关键字有哪些_Python 中的关键字有哪些?
在Python中,具有特殊功能的标识符称为关键字.关键字是Python语言自己已经使用的了,不允许开发者自己定义和关键字相同名字的标识符.Python中的关键字如下所示: Falsedefifrais ...
- python里randint是什么意思_Python中random.randint方法(精选)
Python中 random.randint方法的具体用法?Python 中random.randint怎么用?Python 中random.randint使用的例子?以下例子或许可以帮助到你: 示例 ...
最新文章
- HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
- Tomcat学习过程
- echart 饼图设置指引线_表示整体和部分的条饼图,走起!|Excel144
- HDOJ 1160 FatMouse's Speed
- MySQL高级知识(七)——索引面试题分析
- javascript:控制一个元素高度始终等于浏览器高度
- 浅析计算机科学在经济犯罪中的特征与表现
- (4)Redis的Java API
- Redis 数据结构之dict(2)
- Windows设置自动开关机
- DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》软考考试简介及其知识点架构总结、课程讲解目录(立项-整体-范围-进度-成本-质量-人力资源-沟通-干系人-风险-采购等)
- Java 在接口Interface中 使用关键字 default
- Codeforces Round #322 (Div. 2) A. Vasya the Hipster 水题
- 4G车载信息终端TBOX车联网数据采集智能网联解决方案
- Android——app内打开安装包,安装包解析失败
- 838计算机考研用书,河海计算机838考研大纲(5页)-原创力文档
- linux桌面 输入法 原理,安装ubuntu 7.10桌面版后无中文输入法的解决
- MySql常用函数及命令
- uboot readme
- HTTP 请求是什么?