Pandas按列值拆分DataFrame:匹配起止值提取子数据集
拆分DataFrame:按起始/结束值匹配提取子数据集
我有一个大型DataFrame,其中某一列(如下例中的'A'列)包含重复值。需要将该DataFrame拆分为多个子DataFrame,每个子DataFrame包含从指定起始值(如df['A'] == 0)到指定结束值(如df['A'] == 3)之间的所有行,但需忽略仅出现起始值或仅出现结束值的情况(类似括号匹配规则,即(...)、((...)、(...))视为有效匹配)。
示例构造代码
import numpy as np import pandas as pd a = np.concatenate([np.arange(4), np.arange(5), np.arange(4), np.arange(1), np.arange(4)]) a[5] = 3 b = np.concatenate([np.arange(90, 99), np.arange(9)]) df = pd.DataFrame({'A':a, 'B':b}) # 查看DataFrame前5行 print(df.head())
示例DataFrame前5行输出
A B 0 0 90 1 1 91 2 2 92 3 3 93 4 0 94 ...
期望得到的子DataFrames
df1
A B 0 0 90 1 1 91 2 2 92 3 3 93
df2
A B 4 0 94 5 3 95
df3
A B 9 0 0 10 1 1 11 2 2 12 3 3
df4
A B 14 0 5 15 1 6 16 2 7 17 3 8
内容的提问来源于stack exchange,提问作者Jon Nir
相关产品推荐
相关产品推荐

