将函数应用于 DataFrame 中的每个单元格,该单元格取决于 pandas 中的列名称

2023-12-10

如何将函数应用于 DataFrame 中取决于列名称的每个单元格?

我知道pandas.DataFrame.applymap但它似乎不允许依赖于列名称:

import numpy as np
import pandas as pd
np.random.seed(1)
frame = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'), 
                     index=['Utah', 'Ohio', 'Texas', 'Oregon'])
print(frame)
format = lambda x: '%.2f' % x
frame = frame.applymap(format)
print(frame)

returns:

               b         d         e
Utah    1.624345 -0.611756 -0.528172
Ohio   -1.072969  0.865408 -2.301539
Texas   1.744812 -0.761207  0.319039
Oregon -0.249370  1.462108 -2.060141

            b      d      e
Utah     1.62  -0.61  -0.53
Ohio    -1.07   0.87  -2.30
Texas    1.74  -0.76   0.32
Oregon  -0.25   1.46  -2.06

相反,我希望应用于每个单元格的函数使用当前单元格的列名作为参数。


我不想在每一列上循环,例如:

def format2(cell_value, column_name):
    return '{0}_{1:.2f}'.format(column_name, cell_value)

for column_name in frame.columns.values:
    print('column_name: {0}'.format(column_name))
    frame[column_name]=frame[column_name].apply(format2, args=(column_name))
print(frame)

Returns:

              b        d        e
Utah     b_1.62  d_-0.61  e_-0.53
Ohio    b_-1.07   d_0.87  e_-2.30
Texas    b_1.74  d_-0.76   e_0.32
Oregon  b_-0.25   d_1.46  e_-2.06

(这只是一个示例。我想要在单元格上应用的函数可能不仅仅只是附加列名称)


我改进了另一个答案,axis=0默认情况下,因此可以省略:

a = frame.apply(lambda x: x.apply(format2,args=(x.name)))
print (a)
              b        d        e
Utah     b_1.62  d_-0.61  e_-0.53
Ohio    b_-1.07   d_0.87  e_-2.30
Texas    b_1.74  d_-0.76   e_0.32
Oregon  b_-0.25   d_1.46  e_-2.06
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将函数应用于 DataFrame 中的每个单元格,该单元格取决于 pandas 中的列名称 的相关文章

随机推荐

  • PYSPARK:如何可视化 GraphFrame?

    假设我创建了下图 我的问题是如何可视化它 Create a Vertex DataFrame with unique ID column id v sqlContext createDataFrame a Alice 34 b Bob 36
  • 如何使用 openssl lib pem_read 从字符串读取公钥/私钥

    我在C 中使用openssl 将PrivateKey和PublicKey文件内容复制到两个const char 但我看到api的演示只是从pem文件中获取pem公钥 私钥 那么如何从字符串中获取公钥 私钥呢 尝试这个 char mKey B
  • 缩放 UIPageControl 的当前点并保持其居中

    我对 UIPageControl 进行了子类化 以便使其当前的点更大 class CustomPageControl UIPageControl override var currentPage Int didSet updateDots
  • 在 Python 中将数据文件列拆分为单独的数组

    我是 python 新手 一整天都在试图解决这个问题 我有一个数据文件 如下所示 time I R stkb Step Information Temp 0 Run 1 11 0 000000000000000e 000 0 000000e
  • 在 PHPMailer 上使用 OAuth 2.0 的 Microsoft Office 授权问题

    我在通过 PHPMail 发送 SMTP 邮件期间遇到 OAuth 2 0 授权问题 基本上 我已经尝试了下面列出的所有范围 email openid profile https graph microsoft com Mail Send
  • 用 div 替换文本框,jquery 不起作用

    它只工作了几秒钟 然后 div 再次消失 document ready function done click function txtname replaceWith function return div this val div 你也
  • 如何使用太阳黑子实现通配符搜索

    随时欢迎任何帮助 我将 sunspot 与 solr 一起使用 但无法找到任何好的解决方案来说明如何使用 sunspot 执行通配符搜索 如果我搜索 8088 它应该返回以 8088 但不是 228088560 开头的所有数字 在 solr
  • 从 libgdx 中的集合中检测触摸对象(移动)的最佳方法

    这是我第一次尝试游戏开发 我刚刚开始尝试 libgdx 并了解游戏编程的不同方面 我看了示例项目 我可以了解libgdx游戏的整体架构 但为了掌握游戏动力学的基础知识 我开始玩低级的东西 比如如何绘制简单的形状 如何移动它们 如何处理此类碰
  • 从 C# 应用程序中启动 SFC

    我一直在寻找 但似乎无法完成这项工作 我正在尝试从 C 应用程序中的按钮启动 SFC 我知道这需要权利提升 并且在我试图做的范围内是我想要的行为 我努力了 以管理员身份运行 cmd 和命令 使用来自 C 的参数以管理员身份运行 CMD an
  • 如何在 firebase 中实现基于角色的访问控制

    这是我第一次涉足 Firebase 和 nosql 我有 SQL 背景 使用简单登录安全电子邮件 密码 如何限制对 Firebase 中数据的访问 例如 某些用户有权创建业务对象 用户 客户 类别等 而其他用户则无权 有没有办法将权限列表附
  • 具有动态行和列的 angular2 表

    如何在 angular2 中创建具有动态列和行的表格 我的数据来自休息服务并在此可观察中捕获 this physicalDataService getPhysicalData subscribe res gt this data res 我
  • 使用查询字符串和锚点标签形成正确的 URL

    当查询字符串和锚标记 哈希标记 在 URL 中可见时 它们的正确显示顺序是什么 http www whatever com var val anchor or http www whatever com anchor var val 有这方
  • 组合 ASP.NET 属性中的字符串

    我正在尝试在属性内连接一个字符串 我收到一个错误 我认为这与我的Eval 是否有正确的方法来连接字符串 或者这是不可能的 我认为问题在于我设置 NavigateUrl 的位置
  • 循环优化。寄存器重命名如何打破依赖关系?什么是执行端口容量?

    我正在分析 Agner Fog 的 optimization assemble 中的循环示例 我指的是12 9章 代码是 我简化了一下 L1 vmulpd ymm1 ymm2 rsi rax vaddpd ymm1 ymm1 rdi rax
  • 使用 BouncyCastle SSL 通过 keyFile 进行 Java AES 解密

    我正在尝试编写 Java 代码 使用与 OpenSSL 解密兼容的 BouncyCastle 来解密使用 AES256 加密的文件 s key 是提供的文件 其中包含将用于加密和解密的密钥 需要完成的步骤 1 读取密钥文件 2 使用提供的密
  • WebView 阻止弹出窗口吗?

    我在用着WebView浏览 pesopay com 并且它工作正常 除了当我按下提交按钮时 使用 Google Chrome 等互联网浏览器会显示一个弹出窗口 确认您填写的信息 但在我的安卓里WebView当我按下提交按钮时什么也没发生 我
  • 在 64 位 Windows 上安装 lxml

    所以我试图在我的机器上安装 lxml 但我似乎无法让它工作 我有 Windows 8 1 64 位和 python 3 5 我都用过 pip install lxml and easy install lxml 我不断收到此错误消息 C U
  • PyAudio 输入溢出 -9981 - 没有解决方案工作

    请不要将此问题报告为重复 因为没有一个可用的解决方案适合我 我测试了所有这些 所以 我正在尝试在我的 RaspberryPi B 型板上运行 PyAudio 示例录音程序 这是我收到的错误 Traceback most recent cal
  • 如何从仅标头库构建静态库

    我正在尝试构建项目的静态库stb 所以我可以将它链接到另一个项目 不是用 C C 编写的 我已经创建了 CMakeLists txt 文件来使用 CMake 构建它 但是构建的静态库文件是空的 我怀疑这是因为机顶盒似乎是仅标头图书馆 我尝试
  • 将函数应用于 DataFrame 中的每个单元格,该单元格取决于 pandas 中的列名称

    如何将函数应用于 DataFrame 中取决于列名称的每个单元格 我知道pandas DataFrame applymap但它似乎不允许依赖于列名称 import numpy as np import pandas as pd np ran