Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 熊猫迭代行,然后中断,直到出现条件_Excel_Loops_Pandas_Dataframe_List Comprehension - Fatal编程技术网

Excel 熊猫迭代行,然后中断,直到出现条件

Excel 熊猫迭代行,然后中断,直到出现条件,excel,loops,pandas,dataframe,list-comprehension,Excel,Loops,Pandas,Dataframe,List Comprehension,我有一个这样杂乱无章的专栏 Name Jack James Riddick Random value Another random value 我想做的是只从这个专栏中获取名字,但是努力找到一种方法来区分实名和随机值。幸运的是,这些名称都在一起,随机值也在一起。我唯一能做的就是迭代行,直到它达到“随机值”,然后中断 我已经尝试使用lambda的,但没有成功,因为我认为没有办法打破。我不确定在这种情况下,理解是如何起作用的 这是我一直试图玩的一个例子 df['Name'] = df['Name

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

Name
Jack
James
Riddick

Random value
Another random value
我想做的是只从这个专栏中获取名字,但是努力找到一种方法来区分实名和随机值。幸运的是,这些名称都在一起,随机值也在一起。我唯一能做的就是迭代行,直到它达到“随机值”,然后中断

我已经尝试使用lambda的,但没有成功,因为我认为没有办法打破。我不确定在这种情况下,理解是如何起作用的

这是我一直试图玩的一个例子

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

但上述方法不起作用。根据我努力实现的目标,有什么建议可以奏效吗?谢谢。

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

index_split = df[df.Name == 'Random value'].index.values[0]
如果需要,请保存“随机值”列以供以后使用:

random_values = df.iloc[index_split+1:,].values[0]
从“名称”列中删除随机值:

df = df[0:index_split]

为了澄清这一点,姓名之间用空格隔开,包括名字和姓氏。
“随机值”
基本上是
“状态”
,然后是它下面的一些数字。我想通过找到一种只提取姓名的方法,尝试让脚本经得起未来的考验。我想如果我可以按顺序迭代行,我可以在点击
状态时立即中断。唯一的其他选择是创建一个列表并手动添加名称,然后使用
isin(names)
函数。名称将始终在一行中合并在一起,而随机值合并在一起,它们永远不会混合。如果不可能有某种中断函数,那么我认为你是对的,我必须创建某种名称列表或dict,并与之进行比较。但唯一的缺点是每次在excel工作表中添加新名称时,我都必须更新dict脚本。