使用重复行选择熊猫中的数据范围,Python
我想从已经连接到数据帧中的数据中提取数据,数据帧中有一个类似的模式在整个过程中重复 我要提取的数据将出现在数据帧的整个索引中,每次都以“Staff”开始,以“Total Staff”结束,但当然loc不处理重复数据,我的目标是提取Staff和Total Staff之间的每次数据 我希望使用中概述的代码,例如isin函数,但是在尝试从重复行提取时肯定会出现相同的问题 使用loc使用重复数据提取范围是否有解决方法或替代方法 显示我的loc功能:frame.loc([“Staff”:“Total Staff”])使用重复行选择熊猫中的数据范围,Python,python,pandas,Python,Pandas,我想从已经连接到数据帧中的数据中提取数据,数据帧中有一个类似的模式在整个过程中重复 我要提取的数据将出现在数据帧的整个索引中,每次都以“Staff”开始,以“Total Staff”结束,但当然loc不处理重复数据,我的目标是提取Staff和Total Staff之间的每次数据 我希望使用中概述的代码,例如isin函数,但是在尝试从重复行提取时肯定会出现相同的问题 使用loc使用重复数据提取范围是否有解决方法或替代方法 显示我的loc功能:frame.loc([“Staff”:“Total St
假设您有一列只有两个值:“Staff”和“Total Staff”。假设“总员工数”是每个组的分隔符,因此:
Staff, Staff, Staff, Total Staff, Staff, Total Staff
然后delim=(ser=“全体员工”).cumsum()
:
然后groups=delim.shift().fillna(0).astype(int)
:
现在,您可以抓取以下部分:
for ii in range(groups[-1] + 1):
section = df[groups == ii]
聪明的解决方案!谢谢你的意见。如果价值观超过员工和员工总数,又如何?您如何将员工作为起点?@Iwan:请提供样本数据。你可以把它编辑成问题。为什么不试试for循环呢?只需保留一个布尔值“我现在在一个组中”,然后计算你在哪个组中。标记组,类似于我所做的,但没有矢量化。
0, 0, 0, 0, 1, 1
for ii in range(groups[-1] + 1):
section = df[groups == ii]