如何获得DataFrame的n个最长条目?

2024-02-25

我正在尝试获取 dask DataFrame 的 n 个最长条目。我尝试打电话nlargest https://docs.dask.org/en/latest/dataframe-api.html#dask.dataframe.DataFrame.nlargest在具有两列的 dask DataFrame 上,如下所示:

import dask.dataframe as dd

df = dd.read_csv("opendns-random-domains.txt", header=None, names=['domain_name'])
df['domain_length'] = df.domain_name.map(len)
print(df.head())
print(df.dtypes)
top_3 = df.nlargest(3, 'domain_length')
print(top_3.head())

文件 opendns-random-domains.txt 仅包含一长串域名。上面代码的输出如下所示:

                  domain_name  domain_length
0                webmagnat.ro             12
1     nickelfreesolutions.com             23
2  scheepvaarttelefoongids.nl             26
3                  tursan.net             10
4       plannersanonymous.com             21

domain_name       object
domain_length    float64
dtype: object

Traceback (most recent call last):
  File "nlargest_test.py", line 9, in <module>
    print(top_3.head())
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/dataframe/core.py", line 382, in head
    result = result.compute()
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/base.py", line 86, in compute
    return compute(self, **kwargs)[0]
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/base.py", line 179, in compute
    results = get(dsk, keys, **kwargs)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/threaded.py", line 57, in get
    **kwargs)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/async.py", line 484, in get_async
    raise(remote_exception(res, tb))
dask.async.TypeError: Cannot use method 'nlargest' with dtype object

Traceback
---------
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/async.py", line 267, in execute_task
    result = _execute_task(task, data)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/async.py", line 249, in _execute_task
    return func(*args2)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/dask/dataframe/core.py", line 2040, in <lambda>
    f = lambda df: df.nlargest(n, columns)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/pandas/core/frame.py", line 3355, in nlargest
    return self._nsorted(columns, n, 'nlargest', keep)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/pandas/core/frame.py", line 3318, in _nsorted
    ser = getattr(self[columns[0]], method)(n, keep=keep)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/pandas/util/decorators.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/pandas/core/series.py", line 1898, in nlargest
    return algos.select_n(self, n=n, keep=keep, method='nlargest')
  File "/home/work/Dokumente/ModZero/Commerzbank/DNS_und_Proxylog-Analyse/dask-log-analyzer/venv/lib/python3.5/site-packages/pandas/core/algorithms.py", line 559, in select_n
    raise TypeError("Cannot use method %r with dtype %s" % (method, dtype))

我很困惑,因为我正在打电话nlargest在类型为的列上float64但仍然收到此错误,表示无法在 dtype 上调用它object。这在熊猫中也很有效。如何从 DataFrame 中获取 n 个最长的条目?


显式类型转换帮助了我:

df['column'].astype(str).astype(float).nlargest(5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得DataFrame的n个最长条目? 的相关文章

随机推荐

  • 在静态方法中在 UIView 上用清晰的颜色绘制(切一个洞)

    我有一个iPhone应用程序 我需要实现以下方法 UITextView textView UITextView withCuttedRect CGRect r 此方法必须剪切 填充 UIColor clearColor 矩形r from U
  • 在同一套接字上并行调用 send/recv 是否有效?

    我们可以在同一个套接字上从一个线程调用 send 并从另一个线程调用 receive 吗 我们可以从同一套接字上的不同线程并行调用多个发送吗 我知道好的设计应该避免这种情况 但我不清楚这些系统 API 的行为方式 我也找不到同样的好的文档
  • 表单不提交动态生成的输入(jQuery)

    您好 我正在尝试为我的表单动态生成一些输入 但它没有发布生成的新输入 到目前为止我一直在四处搜索 我唯一能找到的就是使表单成为body 标签 并且在我的应用程序的设计中这是不可能的 所以有人可能知道会发生什么以及如何解决它 不 它不适用于
  • 如何在 Visual Studio Code 中显示 Jupyter Notebook 中的所有输出?

    在 VS Code 中的 Jupyter Notebook 中 当我运行在某个时刻打印大量输出的代码时 剩余的输出将被抑制并显示一条消息 显示更多 在文本编辑器中打开原始输出数据 如何使所有输出可见 我认为你在这里使用内部构建是正确的设置
  • Flink:处理数据早于应用程序水印的键控流

    我正在使用带有运动源和事件时间键控窗口的 F link 该应用程序将监听实时数据流 窗口 事件时间窗口 并处理每个键控流 我有另一个用例 我还需要能够支持某些关键流的旧数据的回填 这些将是事件时间 鉴于我正在使用水印 这会成为一个问题 因为
  • Azure Functions - Blob 流动态输入绑定

    我正在 azure 上运行一个 C 函数 它需要从容器中获取文件 唯一的问题是输入文件的路径每次都会 可能 不同 并且输入文件的数量将从 1 到大约 4 或 5 不等 因此 我不能只使用默认的输入 blob 绑定据我所知 我的选择是给予容器
  • 通过Ajax发送FormData + js变量

    我有这个 Ajax 来发送多个图像 btn on click function var formData new FormData form1 0 var path php upload adm prodpictures php ajax
  • 如何转到 Eclipse 中的“下一个出现”

    在 Eclipse 中 您可以打开 标记出现次数 然后它将突出显示当前范围内给定变量的每次出现 那太好了 但我真的很想从一次这样的事件转移到下一次 到目前为止 我已经找到了两个关于如何执行此操作的建议 但都没有奏效 首先有这样的帖子 Ecl
  • 使用 configparser 添加注释

    我可以使用 python 中的 ConfigParser 模块使用 add section 和 set 方法创建 ini 文件 请参阅示例http docs python org library configparser html http
  • 调试 $rootScope:infdig

    这是一个常见问题 已达到 5 次 digest 迭代 流产 观察者在最近 5 次迭代中被解雇 文档 https docs angularjs org error https docs angularjs org error rootScop
  • 自动更新 HTML 画布宽度和高度属性

    我想将 HTML5 画布与 Flexbox 结合使用 当用户调整窗口大小时 我需要自动设置 canvas width 和 canvas height 我尝试使用 jQuery 来实现 cnvs attr width cnvs width c
  • “Google_Exception”,消息为“经过身份验证后无法添加服务”

    我正在使用 Oauth 2 0 开发带有 Google Analytics 的 WP 插件 我所有的身份验证和数据提取都工作正常 除了这个问题 第一次获得新的 Google 授权代码 例如 4 xbSbg 并进行身份验证 然后尝试调用new
  • 我可以在 AngularJS 中要求通用父指令吗

    子指令是否可以在不确切知道父指令是什么的情况下需要父指令 而只是知道它 实现了一个接口 例如
  • 如何多次重用相同的代码 - html/css

    我想为每个按钮重复使用模式两次 按钮代码 function popUp model const pop up model document getElementById model pop up model classList toggle
  • TypeScript 合并通用数组

    我想要一个对象的通用对象数组 但是 它生成联合类型 如何获得一种合并对象类型 喜欢 key string boo string foo string type PluginType
  • 在 C# 中使用 xsi:nil="true" 反序列化 XML 元素

    我正在尝试反序列化 XML 文件XmlSerializer in C 随后的目标类是使用 xsd 实用程序自动生成的 System CodeDom Compiler GeneratedCodeAttribute xsd 4 0 30319
  • 从 OLE 二进制字符串解析 MathType MTEF 数据

    需要将 MS WORD 2003 或更低版本中的 MathType 方程转换为 MathML 以便在网络上很好地呈现 MathType 的内置函数 Publish to MathPage 可以很好地完成这项工作 但我想将方程转换过程集成到我
  • 带有 React 和 Node 的 google 应用引擎:生产设置

    我使用 React js 和 Node js Express 创建一个网站 我使用 Google App Engine 和 Google Datastore 作为数据库 在我的本地机器上一切正常 React 前端能够访问 Node js 提
  • 如何在 Jest 中的 beforeAll / beforeEach 和测试之间共享数据?

    我们使用 jest 来测试我们的 API 并且有相当复杂的场景 我们使用beforeAll函数为每个测试设置通用辅助变量 有时设置租户分离 在其他情况下我们使用beforeEach为测试设置租户分离的函数 并为测试租户提供一些默认配置 例如
  • 如何获得DataFrame的n个最长条目?

    我正在尝试获取 dask DataFrame 的 n 个最长条目 我尝试打电话nlargest https docs dask org en latest dataframe api html dask dataframe DataFram