在 pandas 数据框中映射值的范围[重复]

2024-01-22

如果之前有人问过这个问题,我深表歉意,但我广泛查看后没有结果。

import pandas as pd    
import numpy as np    
df = pd.DataFrame(data = np.random.randint(1,10,10),columns=['a'])    

   a
0  7
1  8
2  8
3  3
4  1
5  1
6  2
7  8
8  6
9  6

我想创建一个新专栏b映射了几个值a根据某种规则,假设 a=[1,2,3] 为 1,a = [4,5,6,7] 为 2,a = [8,9,10] 为 3。一对一映射我很清楚,但是如果我想按值列表或范围进行映射怎么办?

我沿着这些思路思考......

df['b'] = df['a'].map({[1,2,3]:1,range(4,7):2,[8,9,10]:3})

有几种选择。

熊猫通过pd.cut/ NumPy 通过np.digitize

您可以构建边界列表,然后使用专业库函数。这在@EdChum 的解决方案 https://stackoverflow.com/a/50098390/9209546,并且也在这个答案 https://stackoverflow.com/a/49382340/9209546.

NumPy 通过np.select

df = pd.DataFrame(data=np.random.randint(1,10,10), columns=['a'])

criteria = [df['a'].between(1, 3), df['a'].between(4, 7), df['a'].between(8, 10)]
values = [1, 2, 3]

df['b'] = np.select(criteria, values, 0)

的要素criteria是布尔级数,所以对于lists值,您可以使用df['a'].isin([1, 3]), etc.

字典映射通过range

d = {range(1, 4): 1, range(4, 8): 2, range(8, 11): 3}

df['c'] = df['a'].apply(lambda x: next((v for k, v in d.items() if x in k), 0))

print(df)

   a  b  c
0  1  1  1
1  7  2  2
2  5  2  2
3  1  1  1
4  3  1  1
5  5  2  2
6  4  2  2
7  4  2  2
8  9  3  3
9  3  1  1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas 数据框中映射值的范围[重复] 的相关文章

随机推荐

  • 用于几何入口点的 SceneKit 着色器修改器适用于 iOS,但不适用于 OS X

    我正处于制作 SceneKit 着色器修改器 用于几何入口点 的早期阶段 该修改器根据高度图纹理置换平面的几何形状 计划是用它来创建地形 在 iOS 编辑 iOS 模拟器 中 着色器按其应有的方式工作 但会将此警告打印到控制台 SceneK
  • Xamarin Forms 错误 =>“jarsigner.exe”退出,代码为 1

    我越来越 jarsigner exe 退出 代码为 1我必须更改密钥库位置我不知道如何在 Windows 中以 xamarin 形式进行更改 bcoz 我将此项目从 MAC 复制到 Windows 并且在 PROGUARD 中遇到问题 因为
  • Visual Studio Code 无法打开源文件“iostream”

    我是 C 和 Visual Studio Code 的新手 所以我不知道如何解决这个问题 我尝试过阅读教程在 Visual Studio Code 中使用 Clang https code visualstudio com docs cpp
  • 将向量初始化为零 C++/C++11

    我知道在 C 11 中他们添加了将变量初始化为零的功能 double number number 0 int data data 0 有没有类似的方法来初始化std vector固定长度全为零 您不需要为此初始化列表 std vector
  • 类没有名为的成员

    我在使用我的类对象访问类中的函数时遇到问题main功能 我只是想为该类创建对象并使用该对象来访问该类内部的函数 cpp文件 我不断收到错误 我什至编写了最简单的程序来测试它 但仍然收到错误 Main include
  • 处理 IDisposable 对象处置的通用函数

    我正在开发一个处理大量 Sql 对象的类 Connection Command DataAdapter CommandBuilder 等 在多个实例中 我们有这样的代码 if command null command Dispose if
  • iOS:以编程方式创建 UIWindow 导致位置错误

    在 iOS 5 1 1 中 我发现如果我创建 UIWindow 我厌倦了 IB 并将其框架设置为 UIScreen mainScreen bounds 则窗口会显示状态栏下 然而 如果我在 iOS 6 上做同样的事情 它就会出现在状态栏正下
  • Json 对象数组长度

    我正在使用一些类似于以下内容的 Json Apps Name app1 id 1 groups id 1 name test group 1 desc this is a test group id 2 name test group 2
  • 将 DVCS 与 Visual Source Safe 相结合

    我在工作中被迫使用 Visual Source Safe 2005 我想将其与 DVCS 结合起来 这样我就可以在本地签入文件 而不会在出现错误或无法编译时打扰我的同事 在我对 Mercurial 的尝试中 它有效 但会导致一些奇怪的问题
  • Azure 角色间同步

    我想知道同步运行相同角色的多个 azure 实例的最佳实践 更准确地说 我想防止多个工作角色在同一工作单元上工作 Azure 队列似乎对这个问题没有帮助 一种选择是使用带有锁和存储过程的 sql 表 但是在Azure中使用sql同步似乎有点
  • 酒庄类型的索引在哪里?

    我想构建一个备用的 Winery 模式解码器 所以我查看了一些编码模式 Codec Winery gt B unpack serialiseSchema schema Proxy Proxy Void 4 5 0 Codec Winery
  • 在 Elasticsearch 中建模父/子关系(产品/产品变体)

    使用 ES 或 Solr 对产品变体进行建模让我大吃一惊 考虑 人为的例子 不同的产品 例如 T 恤 每个产品都有一组属性 productid name desc brand color popularity 每个产品都有一组具有属性的产品
  • 为什么我们不能有静态外部类[重复]

    这个问题在这里已经有答案了 为什么我们不能创建外部的静态类 我在这个社区中阅读了该问题的答案 但还没有得到完美的答案 有人可以帮我一个确切的答案吗 static class A void display System out println
  • Excel 文件格式无法用 Pandas 确定,随机发生

    我有一个编辑 xlsx 文件的脚本 一年半以来我每周都成功运行 直到上周开始出现此错误 Excel file format cannot be determined you must specify an engine manually d
  • Excel VBA查询外部.aspx页面并检索数据

    我已经为此苦苦挣扎了大约一天 基本上 我想编写一个 Excel 宏来循环遍历 Excel 中的列表 查询网页并检索一些数据 理想情况下 我只想检索所需的数据 以便将其放置在相邻的单元格中 但此时我会尽一切努力 页面是ASP net 我没有经
  • 有没有 XSLT 处理命令行工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想通过 XSLT 文件和 XSLT 处理工具将 XML 文件更改为修改后的 XML 文件 例如 xs
  • 在 Objective C 中通过 POST 上传图像

    我目前正在通过 HTTP Post 将图像上传到服务器 但似乎无法找到构建调用该服务的 url 的方法 用户从库或相机中选择图像 然后调用执行插入语句的 json 服务 该服务需要以下 uritemplate DataTransfer Se
  • 使用 setup.py 自定义 python 包目录布局

    假设我有以下目录结构 src python generated init py a py lib init py b py 我的是什么setup py需要看起来像这样才能创建目录布局如下的 dist src python init py a
  • 使用任务并行库时如何处理所有未处理的异常?

    我正在使用 TPL 任务并行库 http msdn microsoft com en us library dd460717 28v VS 100 29 aspx 在 NET 4 0中 我想通过使用集中所有未处理异常的处理逻辑Thread
  • 在 pandas 数据框中映射值的范围[重复]

    这个问题在这里已经有答案了 如果之前有人问过这个问题 我深表歉意 但我广泛查看后没有结果 import pandas as pd import numpy as np df pd DataFrame data np random randi