首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用累积和在python/pyspark中赋值

使用累积和在python/pyspark中赋值
EN

Stack Overflow用户
提问于 2021-01-14 12:36:38
回答 1查看 62关注 0票数 2

使用Python,我想写一些代码来分类所有的项目,其中里程列<=2.5的累积和为"IN“,其余的为"OUT”。有什么建议从哪里开始吗?

示例数据集

代码语言:javascript
运行
复制
Rank  Name  Miles
  1   A     0.5  
  2   A     1
  3   B     1
  4   B     1
  5   C     2

期望输出

代码语言:javascript
运行
复制
Rank  Name  Miles  Assign
  1   A     0.5     IN
  2   A     1       IN
  3   B     1       IN
  4   B     1       OUT
  5   C     2       OUT
EN

回答 1

Stack Overflow用户

发布于 2021-01-14 13:26:11

看起来你在用熊猫,虽然我不是专家。

如果你有一个像这样的数据帧:

代码语言:javascript
运行
复制
   Rank Name  Miles
0     1    A    0.5
1     2    A    1.0
2     3    B    1.0
3     4    B    1.0
4     5    C    2.0

然后,您可以简单地创建一个新列,其中的值基于Miles列的累积和:

代码语言:javascript
运行
复制
df['Assign'] = ['IN' if i <= 2.5 else 'OUT' for i in df['Miles'].cumsum()]

或者,我认为这更惯用:

代码语言:javascript
运行
复制
df['Assign'] = ['IN' if i else 'OUT' for i in df['Miles'].cumsum() <= 2.5]

它变成了:

代码语言:javascript
运行
复制
   Rank Name  Miles Assign
0     1    A    0.5     IN
1     2    A    1.0     IN
2     3    B    1.0     IN
3     4    B    1.0    OUT
4     5    C    2.0    OUT
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65713474

复制
相关文章

相似问题

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