dfply:改变字符串列:TypeError

2024-05-30

我的 pandas 数据框包含一个“文件”列,它是带有文件路径的字符串。我正在尝试使用 dfply 来改变此列,例如

resultstatsDF.reset_index() >> mutate(dirfile = os.path.join(os.path.basename(os.path.dirname(X.file)),os.path.basename(X.file)))

但我得到了错误

TypeError: __index__ returned non-int (type Call)

我做错了什么?我怎样做才正确?


由于我的问题得到了赞成,我想,有些人仍然对此感兴趣。到目前为止,我已经对 Python 有了相当多的了解,让我来回答一下,也许这会对其他用户有所帮助。

首先我们导入需要的包

import pandas as pd
from dfply import *
from os.path import basename, dirname, join

并制作所需的 pandas DataFrame

resultstatsDF = pd.DataFrame({'file': ['/home/user/this/file1.png', '/home/user/that/file2.png']})

which is

                        file
0  /home/user/this/file1.png
1  /home/user/that/file2.png

我们看到仍然出现错误(尽管由于 dfply 的不断开发而发生了变化):

resultstatsDF.reset_index() >> \
mutate(dirfile = join(basename(dirname(X.file)), basename(X.file)))

类型错误:index返回非 int (意图类型)

原因是,因为 mutate 适用于系列,但我们需要一个适用于元素的函数。这里我们可以使用这个函数pandas.Series.apply https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html的 pandas,适用于系列。 但是,我们还需要一个自定义函数,可以将其应用于该系列的每个元素file。 所有的东西放在一起我们最终得到了代码

def extract_last_dir_plus_filename(series_element):
    return join(basename(dirname(series_element)), basename(series_element))

resultstatsDF.reset_index() >> \
mutate(dirfile = X.file.apply(extract_last_dir_plus_filename))

哪个输出

   index                       file         dirfile
0      0  /home/user/this/file1.png  this/file1.png
1      1  /home/user/that/file2.png  that/file2.png

在没有 dfply 的情况下执行此操作mutate,我们也可以写成

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

dfply:改变字符串列:TypeError 的相关文章

随机推荐

  • 在 PHP 中的请求之间存储对象而不进行序列化

    我正在用 PHP 编写一个有状态的 Web 应用程序 其中状态可能包含大量对象 目前 我将所有这些对象保存在 SESSION 中 并在请求结束时将它们序列化 这有点痛苦 因为序列化整个会话需要几秒钟 而反序列化则需要更多时间 我想尝试 AP
  • Angularjs 循环遍历 $http.post

    当我循环遍历 Angularjs 的 http post 服务时 for var i 0 i lt scope tagStyles length i scope profilTag tag scope tagStyles i id tag
  • 如何在 git 交互式 rebase 中将提交与下一个提交合并?

    git rebase i允许通过以下方式将提交与前一个提交合并squash or fixup 这两个选项都需要至少一次提交pick ed 当一个人想要使用第一个提交但丢弃其提交消息时 情况怎么样 换句话说 如果我希望第一个提交与后续提交合并
  • Java - 文本字段上的占位符

    我正在尝试使用 Swing 创建一个 GUI 我的问题是 我有一个文本字段 但我希望它有一个 占位符 就像在 html 中一样 我在这里和那里读到它可以通过覆盖文本字段的paint 来完成 由于我的代码已生成 我发现我需要使用 自定义创建代
  • Flask Restful API url

    我正在使用 Flask RESTful http flask restful readthedocs org en latest index html http flask restful readthedocs org en latest
  • 命令中的 Bash 变量扩展[重复]

    这个问题在这里已经有答案了 DATE 1 week ago date date DATE 不起作用 我怎样才能让它发挥作用 我可以做 DATE CMD date date DATE eval DATE CMD 但我不想将整个命令存储在变量中
  • 默认的 jvm 错误日志位置是什么?

    如果执行时未指定错误日志位置java cp blah someplace somejar jarjvm错误日志会写入哪里 jvm错误 是什么意思 如果您引用堆栈跟踪 这些将被写入System err这导致standard error str
  • postgres 数组字段上的 ActiveAdmin 过滤器

    我在 ActiveAdmin 中添加了以下过滤器 filter roles as select collection Model ROLES multiple true 但是当我选择过滤器值来搜索角色时 它给了我以下错误 PG Invali
  • ASP.NET Core - 在 Visual Studio 2015 中通过 Docker 调试时出现问题

    我在 Visual Studio 中使用 Docker 运行基于 ASP NET Core 构建的应用程序时遇到问题 我的应用程序仅使用dnxcore50框架 我的project json 文件是 version 1 0 0 compila
  • Heroku 未使用指定的 Ruby 1.9.3

    升级到 Mongoid 3 和 Ruby 1 9 3 尝试在 Heroku Cedar Stack 上使用 Ruby 1 9 3 我已将以下内容添加到 Gemfile 的顶部 source http rubygems org ruby 1
  • 频繁出现“offset out of range”消息,分区被消费者抛弃

    我们正在运行 3 节点 Kafka 0 10 0 1 集群 我们有一个消费者应用程序 它有一个连接到多个主题的消费者组 我们在消费者日志中看到奇怪的行为 有了这些线 Fetch offset 1109143 is out of range
  • 找不到“ANDROID_HOME”环境变量

    我正在尝试构建一个 ionic android 项目 并且安装了 android sdk 我的项目名称是myApp 我已经成功将android平台添加到myApp中 但是当我尝试构建项目时 myApp sudo ionic build an
  • 需要存储表的属性值以用于空手道中的断言

    我有一个情况 定位器没有文本值 但它的名为 title 的属性有一个我需要断言的文本值 在为其编写自定义定位器时 我只能获取文本值 而不是特定的属性值 例如 title abcdd Example div class table cell
  • 如何向 div 添加“闪耀”叠加层?

    如何添加如下图所示的漂亮叠加层 考虑以下 HTML 我将如何添加这样的覆盖层 我知道我可以在它上面使用渐变 并对角应用它 但我也可以弯曲它吗 div class photostrip div class overlay div img sr
  • .Equals 上的 C# 泛型方法中的意外行为

    为什么 Equals 方法返回与泛型方法不同的结果 我认为这里有一些我不明白的自动拳击 下面是使用 net 3 5 或 4 0 重现该行为的示例 static void Main string args TimeZoneInfo tzOne
  • 使用 JSTS 缓冲区识别自相交多边形

    我希望能够通过 JSTS 无法构造自相交多边形或通过添加缓冲区并在缓冲后测试它们是否是多重多边形来测试自相交多边形 但对于某种形状 这是行不通的 这远远超出了我的几何能力格罗克 a self intersecting shape var p
  • 带条纹的自定义字体 src

    以此作为参考https stripe com docs elements reference stripe elements https stripe com docs elements reference stripe elements
  • 如何在 Hibernate 中使用 Oracle 查询提示

    我试图在 Hibernate 中使用 Oracle 提示来调用强制索引 但在 Hibernate 3 6 10 Final 中没有找到任何合适的 API 我以某种方式尝试了 Hibernate 标准中的预测 proList add Proj
  • Python 列表切片语法的使用没有明显的原因

    我偶尔会看到 Python 代码中使用的列表切片语法如下 newList oldList 当然 这与以下内容相同 newList oldList 或者我错过了什么 浅拷贝 http en wikipedia org wiki Deep co
  • dfply:改变字符串列:TypeError

    我的 pandas 数据框包含一个 文件 列 它是带有文件路径的字符串 我正在尝试使用 dfply 来改变此列 例如 resultstatsDF reset index gt gt mutate dirfile os path join o