我想删除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中删除行相关推荐

  1. panda是删除行_如何从Pandas数据帧中删除行列表?

    如何从Pandas数据帧中删除行列表? 我有一个数据帧df: >>> df sales discount net_sales cogs STK_ID RPT_Date 600141 ...

  2. python里的shell是什么_python中的shell操作

    http://blog.csdn.net/meng_tianshi/article/details/6682317 首先介绍一个函数: os.system(command) 这个函数可以调用shell ...

  3. 前锋python百度云_关于python:使用索引在pandas DataFrame中设置特定单元格的值

    我创建了一个熊猫数据框架 df = DataFrame(index=['A','B','C'], columns=['x','y']) 得到了这个 x    y A  NaN  NaN B  NaN ...

  4. python里dir是什么意思_python中dir什么作用

    python中dir的作用是:1.dir函数传入数据类型返回该数据类型的所有内置方法:2.dir函数传入模块名返回该模块的所有属性和方法. dir() 内置函数的作用 python 内置方法有很多,无 ...

  5. python里object是什么类型_Python中的object这个叫做基类的类,它的属性和行为都有哪些?...

    声明:以下仅为个人学习Python过程中总结的比较自洽的理解,事实上Python面向对象模型可能没那么简单.经查阅,Python在以前的版本还有不继承自object的类,叫做经典类. 用dir(obj ...

  6. python里的关键字有哪些_Python中的yield关键字做了什么?

    Python中的yield关键字做了什么 要理解yield做了什么,就必须明白生成器(generators)为何物,而在明白生成器之前还要知道迭代器(iterables). 1.迭代器 当我们创建一个 ...

  7. python里compile的作用_Python代码中compile()函数具有哪些功能呢?

    摘要: 下文讲述Python代码中compile()函数的功能说明,如下所示: compile()函数功能说明 compile()函数功能: 用于将一个字符串编译为字节代码 compile()函数语法 ...

  8. python里的关键字有哪些_Python 中的关键字有哪些?

    在Python中,具有特殊功能的标识符称为关键字.关键字是Python语言自己已经使用的了,不允许开发者自己定义和关键字相同名字的标识符.Python中的关键字如下所示: Falsedefifrais ...

  9. python里randint是什么意思_Python中random.randint方法(精选)

    Python中 random.randint方法的具体用法?Python 中random.randint怎么用?Python 中random.randint使用的例子?以下例子或许可以帮助到你: 示例 ...

最新文章

  1. HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
  2. Tomcat学习过程
  3. echart 饼图设置指引线_表示整体和部分的条饼图,走起!|Excel144
  4. HDOJ 1160 FatMouse's Speed
  5. MySQL高级知识(七)——索引面试题分析
  6. javascript:控制一个元素高度始终等于浏览器高度
  7. 浅析计算机科学在经济犯罪中的特征与表现
  8. (4)Redis的Java API
  9. Redis 数据结构之dict(2)
  10. Windows设置自动开关机
  11. DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》软考考试简介及其知识点架构总结、课程讲解目录(立项-整体-范围-进度-成本-质量-人力资源-沟通-干系人-风险-采购等)
  12. Java 在接口Interface中 使用关键字 default
  13. Codeforces Round #322 (Div. 2) A. Vasya the Hipster 水题
  14. 4G车载信息终端TBOX车联网数据采集智能网联解决方案
  15. Android——app内打开安装包,安装包解析失败
  16. 838计算机考研用书,河海计算机838考研大纲(5页)-原创力文档
  17. linux桌面 输入法 原理,安装ubuntu 7.10桌面版后无中文输入法的解决
  18. MySql常用函数及命令
  19. uboot readme
  20. HTTP 请求是什么?

热门文章

  1. 【20191220】【app 测试】
  2. python读取yaml文件_python 怎么读取yaml文件
  3. vscode html注释快捷键_VSCode常用的10款插件
  4. C++ 函数模板的使用
  5. linux查看进程和杀死进程
  6. 苹果6手机怎么录屏_【苹果手机小技巧】 自带录屏功能
  7. 轻松解决邮政查询不了物流信息方法
  8. 安装PS2020出现错误码146
  9. 程序员找不到女朋友的原因,脱单看这里!
  10. html表格中数据的居中