Pandas 计算列中负值的序列

2024-03-03

我在 Pandas Dataframe 列“B”中的值可以是正数或负数:

data=[[5889.25, 738.0],
 [5896.5, 49.0],
 [5897.5, 130.0],
 [5899.5, -266.0],
 [5903.75, -126.0],
 [5903.75, -512.0],
 [5898.75, -141.0],
 [5897.5, -303.0],
 [5895.0, -107.0],
 [5893.25, 27.0]]

pd.DataFrame(data,columns=['A','B'])

    A   B
0   5889.25 738.0
1   5896.50 49.0
2   5897.50 130.0
3   5899.50 -266.0
4   5903.75 -126.0
5   5903.75 -512.0
6   5898.75 -141.0
7   5897.50 -303.0
8   5895.00 -107.0
9   5893.25 27.0

什么是快速Pythonic方法来使“C”列计算“B”中的数字为负数的行数?所以数据框看起来像:

    A   B   C
0   5889.25 738.0   0
1   5896.50 49.0    0
2   5897.50 130.0   0
3   5899.50 -266.0  1
4   5903.75 -126.0  2
5   5903.75 -512.0  3
6   5898.75 -141.0  4
7   5897.50 -303.0  5
8   5895.00 -107.0  6
9   5893.25 27.0    0

您可以使用np.where找到负值然后使用groupby and cumcount()+1

data=[[5889.25, 738.0],
 [5896.5, 49.0],
 [5897.5, 130.0],
 [5899.5, -266.0],
 [5903.75, -126.0],
 [5903.75, -512.0],
 [5898.75, -141.0],
 [5897.5, -303.0],
 [5895.0, -107.0],
 [5893.25, 27.0]]

df = pd.DataFrame(data,columns=['A','B'])
df['C'] = np.where(df['B']>0,0,df.groupby(np.where(df['B']<0,0,df['B'])).cumcount()+1)

输出 :



         A      B  C
0  5889.25  738.0  0
1  5896.50   49.0  0
2  5897.50  130.0  0
3  5899.50 -266.0  1
4  5903.75 -126.0  2
5  5903.75 -512.0  3
6  5898.75 -141.0  4
7  5897.50 -303.0  5
8  5895.00 -107.0  6
9  5893.25   27.0  0
  

如果你想为每个正数创建一个序列,你可以编写一个函数

count = 0
def count_neg(x):
    global count
    if x < 0:
        count+=1
    else :
        count = 0 
    return count
df['C'] = df['B'].apply(count_neg)

输出 :



        A      B  C
0  5889.25 -738.0  1
1  5896.50  -49.0  2
2  5897.50  130.0  0
3  5899.50 -266.0  1
4  5903.75 -126.0  2
5  5903.75 -512.0  3
6  5898.75 -141.0  4
7  5897.50 -303.0  5
8  5895.00 -107.0  6
9  5893.25   27.0  0
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 计算列中负值的序列 的相关文章

  • 学习Python中的解析器

    我记得我读过有关解析器的内容 您只需提供一些示例行 它就知道如何解析某些文本 它只是确定两条线之间的差异 以了解可变部分是什么 我以为它是用 python 写的 但我不确定 有谁知道那是什么图书馆吗 可能你的意思是模板制作器 http co
  • virtualenvwrapper 函数在 shell 脚本中不可用

    所以 我再一次制作了一个很棒的 python 程序 它让我的生活变得更加轻松 并节省了大量时间 当然 这涉及到一个 virtualenv 用mkvirtualenvvirtualenvwrapper 的功能 该项目有一个requiremen
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • pandas read_csv 之前预处理数据文件

    我使用 SAP 的数据输出 但它既不是 CSV 因为它不引用包含其分隔符的字符串 也不是固定宽度 因为它具有多字节字符 它是一种 固定宽度 字符 为了将其放入 pandas 我当前读取文件 获取分隔符位置 对分隔符周围的每一行进行切片 然后
  • 如何在Python + Selenium中获取元素的值

    我在我的 Python 3 6 3 代码中得到了这个 HTML 元素 作为 Selenium网页元素当然 span class ocenaCzastkowa masterTooltip style color 000000 alt 5 sp
  • 获取字符串模板中所有标识符列表的函数(Python)

    对于标准库string template在Python中 有没有一个函数可以获取所有标识符的列表 例如 使用以下 xml 文件
  • 为什么我会收到 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

    以下代码给出了值错误 major males for row in recent grads if recent grads Men gt recent grads Women major males append recent grads
  • matplotlib vlines 图中未应用 y 轴的最小值

    我正在 matplotlib 中绘制 vlines 图 数据集中的所有 y 值如下 gt 0 我希望 y 轴最底部的刻度能够读取0 但相反 我得到 500 这是代码 usr bin env python import numpy as np
  • ImproperlyConfigured at / 不允许空静态前缀 - Django

    我正在使用 Django 上传 显示图像 该网站部署在 Heroku 上 下列的this https coderwall com p bz0sng教程我能够成功上传图像 但是 图像并未显示在模板中 然后我了解到我的 urls py 末尾应该
  • 为什么 pip 已经是最新的了却要求我升级?

    我全新安装了 python 3 7 1 64 位 并使用最新的 pyCharm 作为我的 IDE 我在这台机器上没有安装其他 python 我去安装 numpy 并收到以下消息 venv C Users John PycharmProjec
  • 使用具有可变数量索引的 numpy mggrid

    如何将 numpy mgrid 与可变数量的索引一起使用 我在 github 上找不到任何人将其与硬编码值以外的任何内容一起使用的示例 import numpy as np np mgrid 1 10 1 10 this works fin
  • “KMeans”对象没有属性“k”

    我使用 Yellowbrick 包绘制数据集的肘部曲线 以使用 KMeans 作为模型找到数据集的最佳簇数 我正在使用 Scikit learn KMeans 和 Yellowbrick kelbowvisualizer 函数 生成了肘部曲
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 在字符串内打印单引号

    我想输出 XYZ s ABC 我在Python IDLE中尝试了以下3条语句 第一条和第二条语句输出 a before 带打印功能的第三条语句不输出 before 作为 Python 新手 我想了解为什么 之前输出 在第 1 条和第 2 条
  • python 中的 F 字符串前缀给出语法错误[重复]

    这个问题在这里已经有答案了 我有一个名为 method 的变量 它的值是 POST 但是当我尝试运行时print f method method is used 它不断在最后一个双引号处给出语法错误 我找不到它这样做的原因 我正在使用 py
  • 本地主机上的 Google App Engine GQL 查询

    我正在 Google App Engine Windows 上的 SDK 版本 1 7 0 上开发一个应用程序 我需要经常测试该应用程序 并且此测试涉及数据存储上的大量 GQL 查询 您可以在 App Engine 管理界面的浏览器中在线运
  • 为数据集生成随机 JSON 结构排列

    我想生成 JSON 结构的许多不同排列作为同一数据集的表示 最好不需要对实现进行硬编码 例如 给定以下 JSON name smith occupation agent enemy humanity nemesis neo 应该产生许多不同
  • 尝试 numba 时出现巨大错误

    我在使用 numba 时遇到了大量错误 讽刺的是 正确的结果是在错误之后打印的 我正在使用最新的 Anaconda python 并安装了 numba conda install numba 一次在 Ubuntu 13 64 位和 anac
  • JSONDecodeError:额外数据:Python [重复]

    这个问题在这里已经有答案了 我使用以下代码从文件加载 json file file name obj list with open file as f for json obj in f obj list append loads json
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐

  • BrowserslistError:未知的 Android 版本 67

    我使用创建了一个角度库angular 8 and CLI 8 我正在尝试构建库 但收到错误 ng build
  • ruby 中最短的 hex2bin?

    在 ruby 中将十六进制字符串转换为二进制字符串的最短方法是什么 例如 class def hex2bin end end AB12345678 hex2bin class String def hex2bin scan map x x
  • JFileChooser 显示在全屏 JFrame 之外

    import java awt DisplayMode import java awt GraphicsDevice import java awt GraphicsEnvironment import java awt event Act
  • 如何更改文本块背景?

    这是我的xaml structure
  • 如何防止.exe类型文件在网站上传?

    假设我们有一个 example exe 文件 我们首先将该文件放入一个新文件夹中 然后使用任何压缩软件压缩该文件夹 我们可以阻止压缩文件夹在网站中上传吗 我们怎样才能做到这一点 你不能prevent它 因为在提交之前你无法知道浏览器将要提交
  • 为什么我获得了未分配内存的读写权限?

    我对下面代码片段的行为感到困惑 我已经声明了一个 char 指针并将其指向分配大小 1 sizeof char 的内存位置 char src src char malloc 1 sizeof char strcpy src Copy tex
  • 对 Rhino Mocks 中的方法调用进行计数

    所以 我想用比 An Ounce 或 At Least Once 更具体的方法来计算 Rhino Mocks 中的方法调用 有什么机制可以做到这一点吗 诀窍是使用 Repeat Times n 其中 n 是次数 令人惊讶的是 即使该方法的调
  • 如何在活动之前增加 Azure 数据工厂中的参数?

    我正在访问一个 RESTful API 该 API 使用 HTTP 连接器以 50 组为一组进行分页 REST 连接器似乎不支持客户端证书 因此我无法在其中使用分页 我有一个名为的管道变量SkipIndex默认为 0 在 Until 循环内
  • 行为 3 中如何在上下文之间进行通信?

    我无法再在版本 3 中使用 getMainContext 和 getSubcontext alias 版本 3 中上下文之间的通信方式是什么 上下文特征是唯一的方式吗 behat yml default suites guest featu
  • Android 中的电话选择器 api

    我正在尝试使用电话选择器 API 获取电话号码 但得到空响应 这是我的代码 GoogleApiClient googleApiClient new GoogleApiClient Builder this addApi Auth CREDE
  • Schema.org 中的产品列表

    我读了这个谷歌文档 https developers google com search docs data types products 它说我们不使用列表中的产品 那么对于产品列表 具有多页的类似产品类别 如 鞋子 建议使用哪种模式 我
  • 静态和粘性固定标题转换故障

    我创建了一个基于滚动的粘性标题 但有两个问题 上下滚动时 背景有跳跃 我希望你 明白我的意思 有时两个标题 div 一起出现 我该如何解决这个问题 提前致谢 JSFiddle 演示 http jsfiddle net ezBXc CSS m
  • 在 swift 中使用 NSClassFromString 实例化嵌套类

    我有一个如下定义的嵌套类 objc class A objc class B 我需要实例化A B using NSClassFromString 我能够在简单的课程中做到这一点A但是当我附加到NSClassFromString参数 Bstr
  • 将 GitLab 与 TeamCity 集成

    从 GitLab 7 6 或更高版本开始 有一个新选项可以直接从 GitLab 项目使用 TeamCity 在设置中有这样的消息 Teamcity 中的构建配置必须使用构建格式编号 build vcs number 您还需要配置对所有 分支
  • Android:支持多屏

    我正在尝试在Android 中制作一个应用程序 我希望它应该能够在不同屏幕尺寸的多部手机上运行 所以我研究了支持开发者多屏 http developer android com guide practices screens support
  • symfony 中“无法设置验证器上的enable_annotations,因为注释支持被禁用”

    我刚刚创建了一个包 成功 当我准备通过控制台创建一个实体时 发生了这种情况 也使用clear cache 逻辑异常 验证器上的 enable annotations 不能设置为注释 支持被禁用 mi config yml 看起来像 fram
  • 使用 OAuth 和单页应用程序实施 Web API

    我们正在开发一个 API 和一个单页应用程序 这是它未来更可能的使用者之一 我们已经开始使用 Web API 并且基本上实现了一个与 John Papa 在他的pluralsight 课程中制作的系统非常相似的系统 名为 使用 HTML5
  • 尝试使用 Fluent-ffmpeg 将帧提取到内存

    我正在尝试使用 FFmpeg 将帧直接提取到内存中 以节省将帧写入磁盘的时间 因为我不需要它 我尝试运行this https stackoverflow com questions 62050534 how to read video fr
  • 使用 $(GitVersion.NuGetVersion) 标记源会创建带有变量名称而不是值的标签

    成功构建后 将标签格式配置为 GitVersion NuGetVersion 结果标签设置为 GitVersion NuGetVersion 不是该变量的实际扩展值 在构建输出日志记录中 有 2 个部分 计划 构建和完成构建 据推测 一旦构
  • Pandas 计算列中负值的序列

    我在 Pandas Dataframe 列 B 中的值可以是正数或负数 data 5889 25 738 0 5896 5 49 0 5897 5 130 0 5899 5 266 0 5903 75 126 0 5903 75 512 0