栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas中any和all在项目中的使用场景

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas中any和all在项目中的使用场景

一个机器的运行周期内,内部有两个内机(不会同时运行),判断这个运行周期内,单独只运行某一个内机的情况下,该周期保留,如果该周期内,出现两个内机都有运行的阶段时,或者都没有运行的阶段时,该周期剔除。

构造一组数据说明情况,0表示关机,1表示开机

import pandas as pd

df = pd.Dataframe({
    '内机1': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    '内机2': [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}, index=pd.date_range(start='2021-08-31 00:00:00', periods=11, freq='min'))

out:
					内机1  内机2
2021-08-31 00:00:00    0    1
2021-08-31 00:01:00    1    0
2021-08-31 00:02:00    0    1
2021-08-31 00:03:00    0    1
2021-08-31 00:04:00    0    1
2021-08-31 00:05:00    0    1
2021-08-31 00:06:00    0    1
2021-08-31 00:07:00    0    1
2021-08-31 00:08:00    0    1
2021-08-31 00:09:00    0    1
2021-08-31 00:10:00    0    1

还未了解到any和all的使用方法时,我是直接判断两列是否都有大于0的情况,代码如下:

# 判断这两个Dataframe对象是否不同时为empty
df[df['内机1'] > 0].empty
df[df['内机2'] > 0].empty

if (df[df['内机1'] > 0].empty or not df[df['内机2'] > 0].empty) or (df[df['内机2'] > 0].empty or not df[df['内机1'] > 0].empty):
# 满足此条件则这个周期保留

判断条件一看挺复杂的,自从有了any和all之后,非常方便

# 拆分三步走

# 第一步,判断元素大于0的情况
df.loc[:,['内机1','内机2']] > 0

out:
					内机1    内机2
2021-08-31 00:00:00  False   True
2021-08-31 00:01:00   True  False
2021-08-31 00:02:00  False   True
2021-08-31 00:03:00  False   True
2021-08-31 00:04:00  False   True
2021-08-31 00:05:00  False   True
2021-08-31 00:06:00  False   True
2021-08-31 00:07:00  False   True
2021-08-31 00:08:00  False   True
2021-08-31 00:09:00  False   True
2021-08-31 00:10:00  False   True

# 第二步,判断每列是否有True的情况
(df.loc[:,['内机1','内机2']] > 0).any()

out:
内机1    True
内机2    True
dtype: bool

# 第三步,判断该Series对象是否都为True,都为True的话,该周期剔除

(df.loc[:,['内机1','内机2']] > 0).any().all()

out:
True

无论是pandas的any和all还是python内置的any和all,都是非常好用的方法,结合应用到不同的场景之中,可以使代码更为的简洁易懂

希望对大家有所帮助,有问题的地方也请大家批评指正,感谢!! 能给个关注就更好了
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号