首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DataFrames :根据取值范围,将DataFrame拆分为Python的Dict

DataFrames :根据取值范围,将DataFrame拆分为Python的Dict
EN

Stack Overflow用户
提问于 2021-10-28 12:24:51
回答 2查看 96关注 0票数 0

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

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

输入:

代码语言:javascript
运行
复制
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

所需输出:

代码语言:javascript
运行
复制
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中创建循环呢?此外,将输出存储为Dataframes列表或数据帧字典会更有效吗?我问,因为它是一个相当大的数据集。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-28 12:31:35

使用pandas.cut

https://pandas.pydata.org/docs/reference/api/pandas.cut.html

即。

代码语言:javascript
运行
复制
groups = pd.cut(df["ColB"], [1,3,5,7])
[d for _, d in df.groupby(groups)]
票数 1
EN

Stack Overflow用户

发布于 2021-10-28 12:30:39

您可以尝试这样做:

代码语言:javascript
运行
复制
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 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69754061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档