python - 如何检查5行熊猫的每个值是否连续相同
问题描述
我有两个数据框,其中 5 行的 df1 列“A”值相同,然后再更改,接下来的 5 行相同,df2 列“A”值是随机的,没有连续的相同值。
如果检测到 df1 条件 flag==1 并且检测到 df2 条件 flag==0,我想使用 np.where () 给出标志
这里需要找到一种方法,在检测到连续值时检测标志 1,在数据帧中未检测到连续值时检测标志 0。
df1=pd.DataFrame({'A':[1,1,1,1,8,8,8,8,8,15,15,15]})-------> flag==1
df2=pd.DataFrame({'A':[1,3,4,7,8,11,1,15,20,15,16,87]})-----flag==0
解决方案
您可以使用pd.Series.shift
and 检查相等性 and pd.Series.cumsum
,然后使用GroupBy.size
withpd.Series.eq
和最后使用pd.Series.any
g = df1['A'].ne(df1['A'].shift()).cumsum()
flag = df1.groupby(g).size().eq(5).any()# if you want consider consecutive elements
# True # greater than equal to 5 replace `.eq` with `.ge`
g1 = df2['A'].ne(df2['A'].shift()).cumsum()
flag2 = df2.groupby(g1).size().eq(5).any()
# False
推荐阅读
- javascript - Vue/Vuetify - 未知的自定义元素:
- 您是否正确注册了组件? - java - 获取从另一个类创建的变量
- javascript - hint.js:96 Uncaught ReferenceError: isUndefined is not defined
- mysql - MySql for Excel - 导入订单错误
- css - 在纯 CSS 中覆盖没有 !important 的样式
- makefile - 从另一个目录运行configure、make、make install
- c# - 通用方法由于未知原因返回动态
- javascript - 如何在javascript中同步运行数据库查询
- javascript - findOneAndUpdate:使用父和子文档 id 进行更新
- .net - 迁移到包引用格式后,配置文件转换在构建服务器上不起作用