使用循环行值或布尔值来定义 pandas groupby 的边界
Use recurring row values or booleans to define boundaries of pandas groupby
我有一个 pandas DataFrame,它有一个布尔列来指示给定行是否实际上是一个 header(相对于一个值)。我希望能够从 header 行和下一个 header.
之前的所有后续行中创建 pandas groupby objects
想象一个包含以下列的 DataFrame:
pd.Series([True, False, False, False, True, False False])
我想要 运行 一个 groupby 语句,将这个 DataFrame 分成两组:[True, False, False, False] 和 [True, False False]。我该怎么做?
在 B 列上执行 cumsum
,然后用它来分组:
df.groupby(df['your_col'].cumsum())
这是一个示例:
df
A B
0 a True
1 b False
2 c False
3 d False
4 e True
5 f False
6 g False
df.groupby(df['B'].cumsum())['B'].agg(list)
B
1 [True, False, False, False]
2 [True, False, False]
Name: B, dtype: object
我有一个 pandas DataFrame,它有一个布尔列来指示给定行是否实际上是一个 header(相对于一个值)。我希望能够从 header 行和下一个 header.
之前的所有后续行中创建 pandas groupby objects想象一个包含以下列的 DataFrame:
pd.Series([True, False, False, False, True, False False])
我想要 运行 一个 groupby 语句,将这个 DataFrame 分成两组:[True, False, False, False] 和 [True, False False]。我该怎么做?
在 B 列上执行 cumsum
,然后用它来分组:
df.groupby(df['your_col'].cumsum())
这是一个示例:
df
A B
0 a True
1 b False
2 c False
3 d False
4 e True
5 f False
6 g False
df.groupby(df['B'].cumsum())['B'].agg(list)
B
1 [True, False, False, False]
2 [True, False, False]
Name: B, dtype: object