使用重复行Python选择Pandas中的数据范围

时间:2017-08-22 13:06:41

标签: python pandas

我想从已连接成数据帧的数据中提取数据帧,该数据帧具有类似的模式。

我想要提取的数据将在整个数据框索引中出现,并以' 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"])

made up sample

1 个答案:

答案 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]