pandas 创建条件子数据框

nhaq1z21  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(121)

我有下面的数据框。如何根据列中的连续条件创建子 Dataframe ?例如,在下面的 Dataframe 中,我想为B列中出现的每个连续的“1”创建一个单独的 Dataframe 。因此,在该示例中,期望的输出将是用于行1和2、4和6-9的三个单独的 Dataframe 。- 谢谢-谢谢

level_1 = ['A', 'B']
data = [['a1', 1], ['a2', 1],['a3', 0], ['a4', 0],['a1', 1], ['a5', 0],['a6', 1], ['a7', 1],['a8', 1], ['a9', 1]]
df = pd.DataFrame(data, columns=level_1)

字符串

nsc4cvqm

nsc4cvqm1#

这里有一种方法可以将它们分类到不同的组中

df['cat'] = (df['B'].diff() != 0).cumsum()

# filter out the rows/groups you don't want
df = df[df['B'] == 1]

字符串
产出:

A  B  cat
0  a1  1    1
1  a2  1    1
4  a1  1    3
6  a6  1    5
7  a7  1    5
8  a8  1    5
9  a9  1    5

相关问题