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使用的例子?以下例子或许可以帮助到你: 示例 ...
最新文章
- leetcode算法题--将数字变成 0 的操作次数
- WiFi Deauthenticated Reason Codes
- ipad鼠标圆圈变成箭头_【附视频指南】iPad 只能刷剧?来看看我是如何把它武装成生产力工具的!...
- Leetcode475.Heaters供暖器
- 【iOS与EV3混合机器人编程系列之一】iOS要干嘛?EV3可以更酷!
- 软考网络工程师+计算机等级考试四级网络工程师--MAN标准LAN标准
- python自带的库有哪些_python自带库
- ASM的普通盘转AFD
- 联通HG8347R WO-36光猫 当前用户不允许登录解决办法
- 如何产生JIC文件(sof+ELF=jic)
- Cadence Allegro怎么从2层板添加层到4层板
- A段架构设计_隽语集(Business Thinking _1201)
- intellij idea实现代码实时翻译的插件开发
- [图]部分Surface Book 2升级Windows 10 May 2019出现显卡兼容问题
- python协同过滤电影推荐_推荐系统:基于用户和模型的协同过滤电影推荐
- mysql 存储过程中 if else的使用 和赋值方式
- span标签的使用场景
- 【升级华为网络设备及失败修复】
- 万字长文!对比分析了多款存储方案,KeeWiDB最终选择自己来
- Leetcode3:最长不重复子串