首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在嵌套时间循环中更新熊猫索引和行

在嵌套时间循环中更新熊猫索引和行
EN

Stack Overflow用户
提问于 2021-10-07 13:08:17
回答 1查看 102关注 0票数 1

在使用row生成器的for循环中,我面临迭代更新pd.iterrows()index的挑战。在下面的示例中,我的目标是从索引0获得每个连续字母与第一个字母(A)之间的距离:

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
import string
 
data = {'letter':['A', 'C', 'D', 'X', 'X', 'Z', 'A', 'E', 'Z', 'Y', 'D', 'B', 'A']}
 
start_idx=df['letter'].iloc[0]

for index, row in df.iloc[1:].iterrows():
    
    dist= abs(string.ascii_uppercase.index(df['letter'].iloc[0]) - \
              string.ascii_uppercase.index(df['letter'].iloc[index]))
              
    print(dist)
2
3
23
23
25
0
4
25
24
3
1
0

这很容易。但是,如果距离超过5,那么我想开始比较以下字母与最后一个“正常”字母的距离,后者的距离是<= 5,使用while循环,并追加偏离的字母索引。例如:

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
import string
 
data = {'letter':['A', 'C', 'D', 'X', 'X', 'Z', 'A', 'E', 'Z', 'Y', 'D', 'B', 'A']}
bad_letters = [] 
    

start_idx=df['letter'].iloc[0]
compare_letter = string.ascii_uppercase.index(df['letter'].iloc[0])

for index, row in df.iloc[1:].iterrows():
                                              
    dist= abs(compare_letter-string.ascii_uppercase.index(row['letter']))  
    
    if dist > 5:
                                              
        compare_letter =  string.ascii_uppercase.index(df['letter'][index-1]) #reset compare letter
        abnormal=True

        while abnormal:
            
            bad_letters.append(index)
            dist=abs(compare_letter-string.ascii_uppercase.index(df['letter'][index]))
            index+=1 #increment index
            
            if dist <=5:
                abnormal=False
                compare_letter=string.ascii_uppercase.index(df['letter'][index])
                #?update iterrows index with this index#
                break
            
        else:
            continue

输出列表bad_letters 应该是: 3,4,5,8,9,对应于:

字母的-the指数X,X,Z,它在指数2处偏离D>5

-the字母指数Z,Y,在指数7处偏离字母E>5。

上面的尝试失败了,我不知道如何正确地构造这个结构,以便有效地使用带with循环的iterrows()。如何使用iterrows()内部的while循环或不同的熊猫数据生成器来回答这个基本问题?如何迭代地“更新”原始for循环的索引和行?如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-07 13:31:01

您可以在这里使用小于和累计值来标记超过阈值和未超过阈值的连续值。基于此,您只需要组> 2,您可以将这些组值与组中的第一个值进行比较,并输出那些仍然太远的值。

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
 
data = pd.DataFrame({'letter':['A', 'C', 'D', 'X', 'X', 'Z', 'A', 'E', 'Z', 'Y', 'D', 'B', 'A']})

data['dist'] = data.letter.apply(ord)-ord('A')
data['group']  = data.dist.lt(5).cumsum()


data = data.groupby('group').filter(lambda x: len(x)>1)
data = data.groupby('group').apply(lambda x: (x['dist']-x['dist'].iloc[0])>5).reset_index()

data.loc[data['dist']==True]['level_1'].values

输出

代码语言:javascript
运行
AI代码解释
复制
array([3, 4, 5, 8, 9], dtype=int64)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69487878

复制
相关文章
Rust:从嵌套循环中退出
在C语言中,我们常用goto语句来在错误条件下跳转到函数的数据清理部分。这种用法的好处尤其体现在“错误发生在嵌套循环”的时候,我们不用每一层循环都加一个标志位,逐级退出。
灯珑LoGin
2022/11/16
1.5K0
Dart:在循环中使用 Async 和 Await
在 Dart(以及 Flutter)中,您可以使用Future.forEach在循环中顺序执行同步操作。下面的示例程序将打印从 1 到 10 的数字。每次打印完一个数字,它会等待 3 秒,然后再打印下一个数字。
徐建国
2022/04/27
1.7K0
Dart:在循环中使用 Async 和 Await
SwiftU:在循环中创建视图
通常在一个循环中创建多个SwiftUI视图。例如,我们可能想要遍历一系列名称,并让每个名称成为文本视图,或者遍历一系列菜单项,并将每个名称显示为图像。
韦弦zhy
2020/03/20
2.3K0
Kafka的位移索引和时间戳索引
每当Consumer需要从topic分区的某位置开始读消息时,Kafka就会用OffsetIndex直接定位物理文件位置,避免从头读取消息的I/O性能开销。
JavaEdge
2021/02/23
1.7K0
Kafka的位移索引和时间戳索引
「Mysql索引原理(十六)」维护索引和表-更新索引统计信息
MySQL的査询优化器会通过两个API来了解存储引擎的索引值的分布信息,以决定如何使用索引。第一个API是 records_in_range(),通过向存储引擎传入两个边界值获取在这个范围大概有多少条记录。对于某些存储引擎,该接口返回精确值,例如MyISAM;但对于另一些存储引擎则是一个估算值,例如 InnoDB。 第二个API是info(),该接口返回各种类型的数据,包括索引的基数(每个键值有多少条记录)。 如果存储引擎向优化器提供的扫描行数信息是不准确的数据,或者执行计划本身太复杂以致无法准确地获取各个阶段匹配的行数,那么优化器会使用索引统计信息来估算扫描行数。 MySQL优化器使用的是基于成本的模型,而衡量成本的主要指标就是一个查询需要扫描多少行。如果表没有统计信息,或者统计信息不准确,优化器就很有可能做出错误的决定。可以通过运行ANALYZE TABLE来重新生成统计信息解决这个问题。 每种存储引擎实现索引统计信息的方式不同,所以需要进行ANALYZE TABLE的频率也因不同的引擎而不同,每次运行的成本也不同:
源码之路
2020/09/04
2.1K0
「Mysql索引原理(十六)」维护索引和表-更新索引统计信息
从一个多层嵌套循环中直接跳出
Java中如何从一个多层嵌套循环中退出,例如下面,有两个循环,break只能退出一个for循环,不能直接跳过第二个for循环
硬核编程
2020/07/23
9360
比较列存储索引与行索引
原因:     之前已经写过一篇关于列存储索引的简介https://cloud.tencent.com/developer/article/1032222,很粗糙但是基本阐明了列存储索引的好处。为了更好的理解列存储索引,接下来我们一起通过列存储索引与传统的行存储索引地对比2014中的列存储索引带来了哪些改善。由于已经很多介绍列存储,因此这里我仅就性能的改进进行重点说明。 测试场景     我创建了5个测试,尽量保证测试环境避免来自外界的重负载进而影响到结果。测试结果基于两个独立的表,分别是: FactTra
用户1217611
2018/01/30
1.7K0
比较列存储索引与行索引
Mongodb多键索引之嵌套文档
接上上一篇文档 Mongodb多键索引之数组,本次继续多键索引,到目前为止还没有分析业务中具体使用方式以及需求,只知道需要使用多键索引来满足不同查询,通过一个多键索引来解决不同谓词过滤,具体能否实现以及到底使用数组、嵌套文档还是数组文档方式?目前都是未知数,所以通过学习官方资料以及实际验证来解决如上2个问题.【能不能以及怎么做问题】,同时引出关键问题性能问题,选择一个能做方式满足业务需求,到底性能如何?
徐靖
2020/08/25
3.1K0
ElasticSearch 动态更新索引
倒排索引被写入磁盘后是 不可改变(immutable):永远不会被修改。不变性有如下几个重要的优势:
smartsi
2019/08/07
4K0
php简单使用sphinx 以及增量索引和主索引来实现索引的实时更新
Why/为什么使用Sphinx? 遇到一个类似这样的需求:用户可以通过文章标题和文章搜索到一片文章的内容,而文章的标题和文章的内容分别保存在不同的库,而且是跨机房的这种类似的例子。 sphinx 官网下载地址(这里根据自己的情况选择相应的版本下载即可) 这里我下载的是sphinx-3.1.1-release-win64.zip,将下载的文件解压,解压后将文件夹重命名为sphinx(方便后续操作,目录结构如下图所示) sphinx 目录结构
友儿
2022/09/11
1.1K0
MONGODB 嵌套数组更新 与 设计
(注:最近我发现MONGODB 的文字,大家好像不大感兴趣,不知道是大家的公司不使用MONGBDB 还是由于MONGODB 太稳定,所以就忽略了,其实MONGODB 可以聊的话题和使用的范围很大,有的公司可能主力数据库就是MONGODB 所以MONGODB 确实不是可有可无的)
AustinDatabases
2019/09/05
3.4K0
MONGODB  嵌套数组更新 与   设计
Java 如何优雅的在循环中删除元素
如果集合中的元素唯一,也就是说只删除集合中符合条件的一个元素,以下用法也是没问题的
鱼找水需要时间
2023/02/16
1.5K0
MySQL 嵌套查询_嵌套查询和嵌套结果的区别
where course.cno=sc.cno and course.cname=’数据库’ and grade>=80)[/code](3)查询计算机系最高成绩。
全栈程序员站长
2022/09/22
4.6K0
抽时间更新了
今天給大家介紹的是一款名叫Dwarf的逆向分析調試工具,該工具基於Pyqt5和Frida實現,專為逆向工程師、安全破解人員和安全分析專家設計。
吾爱小白
2020/07/09
5240
ES更新嵌套数组(使用Java API)
最近在学习ElasticSearch,前些天在工作中遇到一个难以解决的问题,问题正如标题所示在使用Java TransportClient更新ES复杂数据结构数组,最后请教大佬问题得以解决。此文章将详细描述问题并提供解决办法。
allsmallpig
2022/01/06
2.7K0
MongoDB聚合索引在实际开发中的应用场景-嵌套文档的聚合查询
MongoDB 支持嵌套文档,即一个文档中可以包含另一个文档作为其字段。在聚合查询中,可以通过 $unwind 操作将嵌套文档展开,从而进行更灵活的查询和统计。
玖叁叁
2023/04/14
3.7K0
mybatis-plus实现对创建时间和更新时间的自动填充
我们在项目的开发当中,基本上没张表里都有创建时间和更新时间,而且我们每次在新增或修改数据的时候,也都要把这两个时间更新成当前时间,当然我们也可以在数据库层面设置更新时更新,否则就只能在代码中出现很多重复的如下代码:
一缕82年的清风
2021/12/06
2.6K0
[MySQL]ANALYZE TABLE 更新索引基数
MySQL使用存储的键分布基数来确定表连接顺序 在决定对查询中的特定表使用哪些索引时,也会使用使用键分布基数
唯一Chat
2020/03/19
5920
Linux日志轮循实现(shell)
在Linux系统中,日志的使用非常频繁,那么对日志就需要一定策略的管理,包括存放目录的设计,log文件命名规则,历史log文件的存放,log目录的容量限制,另外还有日志轮循。
jianghaibobo
2019/08/02
1.7K0
点击加载更多

相似问题

熊猫-嵌套循环中按索引排列的KeyError行

10

熊猫删除行和更新索引

13

C:图像索引公式(数组),在嵌套for循环中更新索引

12

在大熊猫中复制和更新一行的索引

14

熊猫HDFStore按日期时间索引选择行

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档