根据一列中的值范围拆分数据帧



假设我有以下数据框架:

df = pd.DataFrame({'A' : [0, 0.3, 0.8, 1, 1.5, 2.3, 2.3, 2.9], 'B' : randn(8)})
df
Out[86]: 
A         B
0  0.0  0.130471
1  0.3  0.029251
2  0.8  0.790972
3  1.0 -0.870462
4  1.5 -0.700132
5  2.3 -0.361464
6  2.3 -1.100923
7  2.9 -1.003341

我如何根据cola值的范围分割这个数据框,如下所示(0<=A<1,1 <=A<2,等等)?:

A         B
0  0.0  0.130471
1  0.3  0.029251
2  0.8  0.790972
A         B
3  1.0 -0.870462
4  1.5 -0.700132
A         B
5  2.3 -0.361464
6  2.3 -1.100923
7  2.9 -1.003341

我知道np。如果要根据相等的行数进行分割,则可以使用数组:

np.array_split(df, 3)

但是是否存在类似的东西允许我在这里应用我的条件?

尝试使用groupby和底层划分:

for k, d in df.groupby(df['A']//1):
print(d)

输出:

A         B
0  0.0  0.130471
1  0.3  0.029251
2  0.8  0.790972
A         B
3  1.0 -0.870462
4  1.5 -0.700132
A         B
5  2.3 -0.361464
6  2.3 -1.100923
7  2.9 -1.003341

最新更新