在Python中对pandas中的数据框进行分箱[重复]

2023-12-22

给定 pandas 中的以下数据框:

import numpy as np
df = pandas.DataFrame({"a": np.random.random(100), "b": np.random.random(100), "id": np.arange(100)})

where id是每个点的 id,由a and b值,我该如何分类a and b放入一组指定的垃圾箱中(这样我就可以取中值/平均值a and b在每个垃圾箱中)?df可能有NaNa or b(或两者)对于任何给定行df.

这是一个更好的例子,使用 Joe Kington 的解决方案,更现实df。我不确定的是如何访问df.b每个元素df.a以下组:

a = np.random.random(20)
df = pandas.DataFrame({"a": a, "b": a + 10})
# bins for df.a
bins = np.linspace(0, 1, 10)
# bin df according to a
groups = df.groupby(np.digitize(df.a,bins))
# Get the mean of a in each group
print groups.mean()
## But how to get the mean of b for each group of a?
# ...

可能有一种更有效的方法(我有一种感觉pandas.crosstab在这里很有用),但我会这样做:

import numpy as np
import pandas

df = pandas.DataFrame({"a": np.random.random(100),
                       "b": np.random.random(100),
                       "id": np.arange(100)})

# Bin the data frame by "a" with 10 bins...
bins = np.linspace(df.a.min(), df.a.max(), 10)
groups = df.groupby(np.digitize(df.a, bins))

# Get the mean of each bin:
print groups.mean() # Also could do "groups.aggregate(np.mean)"

# Similarly, the median:
print groups.median()

# Apply some arbitrary function to aggregate binned data
print groups.aggregate(lambda x: np.mean(x[x > 0.5]))

编辑:由于OP专门询问了方法b按中的值进行分箱a, 做就是了

groups.mean().b

另外,如果您希望索引看起来更好(例如,将间隔显示为索引),就像 @bdiamante 的示例中所做的那样,请使用pandas.cut代替numpy.digitize。 (感谢 bidamante。我没有意识到pandas.cut存在。)

import numpy as np
import pandas

df = pandas.DataFrame({"a": np.random.random(100), 
                       "b": np.random.random(100) + 10})

# Bin the data frame by "a" with 10 bins...
bins = np.linspace(df.a.min(), df.a.max(), 10)
groups = df.groupby(pandas.cut(df.a, bins))

# Get the mean of b, binned by the values in a
print groups.mean().b

这导致:

a
(0.00186, 0.111]    10.421839
(0.111, 0.22]       10.427540
(0.22, 0.33]        10.538932
(0.33, 0.439]       10.445085
(0.439, 0.548]      10.313612
(0.548, 0.658]      10.319387
(0.658, 0.767]      10.367444
(0.767, 0.876]      10.469655
(0.876, 0.986]      10.571008
Name: b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中对pandas中的数据框进行分箱[重复] 的相关文章

  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 使用 OLS 回归预测未来值(Python、StatsModels、Pandas)

    我目前正在尝试在 Python 中实现 MLR 但不确定如何将我找到的系数应用于未来值 import pandas as pd import statsmodels formula api as sm import statsmodels
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 如何解决使用 Spark 从 S3 重新分区大量数据时从内存中逐出缓存的表分区元数据的问题?

    在尝试从 S3 重新分区数据帧时 我收到一个一般错误 Caused by org apache spark SparkException Job aborted due to stage failure Task 33 in stage 1
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • 如何在 python 中没有 csv.reader 迭代器的情况下解析单行 csv 字符串?

    我有一个 CSV 文件 需要重新排列和重新编码 我想跑 line line decode windows 1250 encode utf 8 在由 CSV 读取器解析和分割之前的每一行 或者我想自己迭代行 运行重新编码 并仅使用单行解析表单
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel

随机推荐

  • 包中不存在指定的部件

    我有以下代码 using var doc WordprocessingDocument Open filename true 其中 string filename 是 docx 文件的有效路径 但是调用 Open 会导致以下 Invalid
  • 如何在 ADO.NET 实体数据模型中连接到 Oracle

    当我问这个问题时 有人建议我在这里使用实体框架 构建数据层 强类型数据集和类哪个更好 https stackoverflow com questions 1287407 how is better to build data layer s
  • MySQL插入多个表(关系型)

    tbl product Name Creator UID Salerank tbl price Supplier Price UID 我想插入一个产品 然后将多个价格插入到一个单独的表中 如何确保两个表具有相同的 UID 最好是自动增量字段
  • BLL、DAL、BO、插入数据

    我需要你的建议 我正在尝试在 ASP NET 中开发一个 3 层架构 将 BBL DAL BOboj 分开 在 DAL 内部 我通过 view 收集数据 我想知道 我应该为每个视图编写另一个 BOboj 吗 我已经有一个 BOboj 类 但
  • 计算行之间的日期差异

    我有一个 data table 我想在其中标记给定组 ID 的先前条目 90 天内的条目 背景是这些是交易的买入信号 所以我不希望在 90 天的窗口内重复 因为我假设我持有该头寸 90 天 因此已经购买了一个头寸 并且我不想重新启动时钟 所
  • 在Python中从列表中获取N个最小或最大元素的快速方法

    我目前有一个很长的列表 正在使用 lambda 函数 f 进行排序 然后我从前五个元素中选择一个随机元素 就像是 f lambda x some function of x local variable my list sort key f
  • opencv中的视频文件

    我想读取视频文件 avi 或 mov 并使用 Opencv 检测运动和边缘 你能帮我编写代码吗 我想创建一个 GUI 在其中我们可以选择视频文件 然后我们可以进行图像处理opencv中的函数 如何读取视频文件 读取视频文件并将其显示在窗口上
  • Android 相机预览旋转

    根据 Android 开发者网站 android 2 2之后有这个功能 设置显示方向 调整相机预览旋转 并且根据Android开发者网站 我们可以找到以下源代码 android hardware Camera CameraInfo info
  • 初始化锯齿状数组

    我想在 C 中创建数组 10 10 10int not int 我可以写代码 int count new int 10 for int i 0 i lt 10 i count i new int 10 for int j 0 j lt 10
  • JavaScript:检查 CTRL 按钮是否被按下

    I need to check if the CTRL button was pressed while I am clicking on a control on my html page using JavaScript 我怎样才能做到
  • 以平滑的结果对 CSS 背景位置进行动画处理(子像素动画)

    我正在尝试缓慢地为 div 的背景位置设置动画 但不会出现不稳定的运动 您可以在这里看到我当前努力的结果 http jsfiddle net 5pVr4 2 http jsfiddle net 5pVr4 2 webkit keyframe
  • CoffeeScript:在函数调用中扩展数组

    在 Ruby 中 我可以调用使用数组元素作为位置参数的方法 如下所示 method fixed arg1 fixed arg2 array of additional args 这里的 运算符将数组扩展到位 我试图在 CoffeeScrip
  • Intellij IDEA 找到匹配的标记

    是否有快捷方式或我可以单击以查找标记标签的匹配标签并将焦点 光标移至那里 例如 p span span p div div 如果我的光标位于结束位置标签 我希望 IDEA 带我去参加开幕式 tag Ctrl goes to the open
  • Google 地图:DirectionService 返回 OVER_QUERY_LIMIT 响应

    我正在使用 google maps DirectionsService 来获取两点之间的路线 该代码在过去 8 个月内一直有效 但是 从过去的几天来看 DirectionService 路由调用返回 OVER QUERY LIMIT 响应状
  • jQuery 选择器中允许使用哪些字符?

    我正在使用 jQuery 平滑滚动到我网站上的某些锚点 锚点是以编程方式创建的 因此它们可以包含一些德语变音符号 例如 或其他 unicode 字符 例如 等 该函数使用哈希来选择哈希所引用的元素 Smooth scroll to anch
  • 哪一行的值最高?

    我有多个提名人和民意调查的选举结果表 我需要确定每次民意调查中哪位提名人获得最多票数 以下是表中数据的示例 PollID NomineeID Votes 1 1 108 1 2 145 1 3 4 2 1 10 2 2 41 2 3 0 我
  • Android ListView 子视图 setEnabled() 和 setClickable() 不执行任何操作

    我正在做一些AsyncTask用户单击我的项目后工作ListView 我想禁用该项目 这样它就不能被单击两次 我已经简化了单击侦听器以仅包含此方法 但它仍然对我没有任何作用 视图看起来相同 并且它让自己再次被愉快地单击 这让我很烦恼 pub
  • 如何在 Swift 中传递和获取多个 URL QueryItem?

    好的 我正在 iMessage 应用程序中工作 并尝试从此处所选消息中解析超过 1 个 url 查询项 我已成功在查询中获取 发送 1 个值 override func willBecomeActive with conversation
  • 使用 Boost.regex 从目录打印 .pdf 文件名

    这是我的代码 path Path e Documents boost regex reg pdf for recursive directory iterator it Path it recursive directory iterato
  • 在Python中对pandas中的数据框进行分箱[重复]

    这个问题在这里已经有答案了 给定 pandas 中的以下数据框 import numpy as np df pandas DataFrame a np random random 100 b np random random 100 id