我想从已连接成数据帧的数据中提取数据帧,该数据帧具有类似的模式。
我想要提取的数据将在整个数据框索引中出现,并以' Staff'并以' Total Staff'结束每一次,但当然loc不适用于重复数据,我的目标是在员工和总员工之间提取每一个数据。
我希望使用Select rows from a DataFrame based on values in a column in pandas中列出的代码,例如isin函数,但是在尝试从重复行中提取时肯定会出现同样的问题?
是否有使用loc来使用重复数据提取范围的变通方法或替代方法?
显示我的loc函数:frame.loc([" Staff":" Total Staff"])
答案 0 :(得分:1)
我们假设您的列只有两个值:" Staff"和#34;总人数"。让我们说" Total Staff"是每个组的分隔符,所以:
Staff, Staff, Staff, Total Staff, Staff, Total Staff
然后delim = (ser == "Total Staff").cumsum()
:
0, 0, 0, 1, 1, 2
然后groups = delim.shift().fillna(0).astype(int)
:
0, 0, 0, 0, 1, 1
现在你可以抓住部分:
for ii in range(groups[-1] + 1):
section = df[groups == ii]