熊猫迭代行然后中断直到条件

Posted

技术标签:

【中文标题】熊猫迭代行然后中断直到条件【英文标题】:pandas iterate rows and then break until condition 【发布时间】:2017-03-10 12:15:46 【问题描述】:

我有一个像这样杂乱无章的专栏;

Name
Jack
James
Riddick

Random value
Another random value

我想要做的是只从该列中获取名称,但努力寻找一种方法来区分真实姓名和随机值。幸运的是,名称都在一起,随机值也都在一起。我唯一能做的就是迭代行,直到它达到“随机值”,然后中断。

我尝试过为此使用 lambda,但没有成功,因为我认为没有办法破解。而且我不确定在这种情况下理解如何起作用。

这是我一直在尝试的示例;

df['Name'] = df['Name'].map(lambda x: True if x != 'Random value' else break)

但以上不起作用。根据我想要实现的目标,有什么建议可以发挥作用吗?谢谢。

【问题讨论】:

为了澄清,名字是间隔的,名字和姓氏。 'Random Value' 基本上是'status',然后是它下面的一些数字。我想通过找到一种仅提取名称的方法来尝试使脚本成为未来的证明。我想如果我可以按顺序迭代行,我可以在点击status 时立即中断。唯一的其他选择是创建一个列表并手动添加名称,然后使用isin(names) 函数。 名字总是连续排列在一起,随机值排列在一起,它们永远不会混合在一起。如果不可能有某种中断功能,那么我是对的,因为我必须创建某种名称列表或字典并与之进行比较。但唯一的缺点是每次将新名称添加到 excel 表时,我都必须更新 dict 脚本。 【参考方案1】:

查找包含“随机值”的行的索引:

index_split = df[df.Name == 'Random value'].index.values[0]

如果需要,请保存您的随机值列以供以后使用:

random_values = df.iloc[index_split+1:,].values[0]

从名称列中删除随机值:

df = df[0:index_split]

【讨论】:

以上是关于熊猫迭代行然后中断直到条件的主要内容,如果未能解决你的问题,请参考以下文章

sql查询迭代行并进行计算

没有 var 或 breakable:在数组遍历中遇到谓词时如何“中断”?

编写自动售货程序,while 语句不会中断?

ZYNQ 关于中断的疑惑?

低速系统调用的信号中断

ps命令