熊猫迭代行然后中断直到条件
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]
【讨论】:
以上是关于熊猫迭代行然后中断直到条件的主要内容,如果未能解决你的问题,请参考以下文章