首页 > 解决方案 > Python:根据值的范围将数据帧拆分为数据帧的字典

问题描述

我有一个 DataFrame df,我需要根据特定列中的值是否ColB在给定范围内进行拆分;

1-3、3-5、5-7 等

输入:

Time ColA ColB ColC
1    100  1.1  500
2    105  3.2  600
3    107  7.7  550
4    106  2.4  750
5    104  5.2  950
6    103  6.9  450

期望的输出:

Time ColA ColB ColC
1    100  1.1  500
4    106  2.4  750


Time ColA ColB ColC
2    105  3.2  600



Time ColA ColB ColC
3    107  7.7  550
5    104  5.2  950
6    103  6.9  450

有没有一种不用在 Python 中创建循环的好方法来做到这一点?此外,将输出存储为数据帧列表或数据帧字典会更有效吗?我问它是一个相当大的数据集。

标签: pythonpandasdataframe

解决方案


你可以试试这个:

lst = [(1,3), (3,5), (5,7)]
result = [df[df['ColB'].between(a,b)] for a,b in lst]
for i in result:
    print(i, "\n")
    
   Time  ColA  ColB  ColC
0     1   100   1.1   500
3     4   106   2.4   750 

   Time  ColA  ColB  ColC
1     2   105   3.2   600 

   Time  ColA  ColB  ColC
4     5   104   5.2   950
5     6   103   6.9   450 

推荐阅读