我有这样一个数据帧:
Name ID Level
Name1 A 1
Name2 B 2
Name3 C 3
Name4 D 1
Name5 E 2
Name6 F 1
等等。。。在
我正在寻找一种方法,根据名称标准只提取此数据帧的一个子节。所以我想从Name4开始提取所有内容,直到组中最后一个人的名字是另一个级别1,即从Name4提取到Name5,因为Name6是一个级别1。在
或者作为另一个例子,我想从Name1提取到Name3,因为Name4是一个级别1。在
我可以在Excel中用一个宏来完成这个任务…找到Name1,查看Level列,如果它不是1,那么就获取这行数据,一直到你再次找到一个级别为1的名称,然后停止,然后输出这个部分
希望这有道理。在
你可以这样做:
创建一个保存Group值的新列'Group',然后可以
groupby
此列这将把所需的
Name
放在一个地方-现在您可以根据需要为每个实体设置
Level
/操作apply()
函数中的lambda
以实现它使用此数据帧:
使用指示行是否处于某个级别(目标级别)的辅助列/系列。
^{pr2}$target_lvl = 1
:现在,您可以获取映射每个子集开始和结束的范围列表:
^{pr3}$注意^{cd2>}的值是属于^{{cd3>}的每一行的索引。
最后,您只需要从^{cd2>}中提取子集:
^{pr4}$相关问题 更多 >
编程相关推荐