通过 pandas 中列名称的子字符串融化列(python)

2023-11-23

我有数据框:

         subject           A_target_word_gd  A_target_word_fd B_target_word_gd  B_target_word_fd  subject_type 
           1                      1             2                3                    4             mild 
           2                      11            12               13                  14             moderate

我想将其融合为一个数据框,如下所示:

     cond    subject    subject_type     value_type   value
      A         1        mild             gd           1           
      A         1        mild             fg           2           
      B         1        mild             gd           3            
      B         1        mild             fg           4  
      A         2        moderate         gd           11           
      A         2        moderate         fg           12           
      B         2        moderate         gd           13            
      B         2        moderate         fg           14          
...

...

意思是,根据列名称的分隔符来融化。

最好的方法是什么?


这是我的使用方式melt and series.str.split():

m = df.melt(['subject','subject_type'])
n = m['variable'].str.split('_',expand=True).iloc[:,[0,-1]]
n.columns = ['cond','value_type']
m = m.drop('variable',1).assign(**n).sort_values('subject')

print(m)

   subject subject_type  value cond value_type
0        1         mild      1    A         gd
2        1         mild      2    A         fd
4        1         mild      3    B         gd
6        1         mild      4    B         fd
1        2     moderate     11    A         gd
3        2     moderate     12    A         fd
5        2     moderate     13    B         gd
7        2     moderate     14    B         fd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 pandas 中列名称的子字符串融化列(python) 的相关文章

随机推荐

  • 使用 jquery 动态创建元素

    我正在尝试使用 jquery 创建元素 当我单击链接时 我想创建一个元素 p 给它一些文本 然后将其放入我的一个 div 中 另外 我想检查点击了哪个链接 这样我就可以将创建的 p 放在右侧的 div 中 关于我做错的地方有什么解决方案吗
  • 为什么新样式类和旧样式类在这种情况下有不同的行为?

    我发现了一些有趣的东西 这是一段代码 class A object def init self print A init def del self print A del class B object a A 如果我运行这段代码 我将得到
  • Android 图像滤镜库

    是否有适用于 Android 的图像库 如http www jhlabs com ip filters index html 或者有人移植过同样的东西吗 提前致谢 我知道这是一个老话题 但在没有 AWT 库的情况下 我已经开始移植一些图像滤
  • d3-cloud 的打字

    我想用d3 cloud在我的 Angular2 应用程序中生成词云 但是 我无法找到要安装的正确类型 我试过this但是当我尝试将其导入到我的组件中时 它不起作用 我不断收到错误 在类型中找不到属性布局 有人可以帮我解决这个问题吗 我想出了
  • 简单标题未显示在 UINavigationController 中

    我已经查看了所有类似 相关的问题 但没有一个是a 完全是我的问题 或者2 解决方案不起作用 在我的 appDelegate m 中 我有 didFinishLaunchingWithOptions JCGRootNavigationCont
  • 以编程方式更改 SQL Server 设置

    我请求你仔细阅读我的问题 您可能知道 当您安装带有 SQL Server Express 版本的 VS2005 2008 时 SQL Server 默认以 Windows 身份验证模式运行 您可以使用 SQL Server Manageme
  • 如何解决 RapidXML 字符串所有权问题?

    RapidXML是一个快速 轻量级的 C XML DOM 解析器 但它有一些怪癖 在我看来 其中最糟糕的是 3 2 字符串的所有权 RapidXml 生成的节点和属性不 拥有它们的名称和值字符串 他们 只需持有指向它们的指针即可 这 意味着
  • 如何使用抽屉导航锁定特定页面的抽屉 [react-navigation][react-native]

    这是我的抽屉导航 const DashboardStack StackNavigator Dashboard screen Dashboard headerMode screen const DetailsformStack StackNa
  • 按字段的前两个字符对 SQL 进行排序

    我正在尝试按销售人员姓名缩写对一些数据进行排序 销售代表字段的长度为 3 个字符 并且是名字 姓氏和帐户类型 所以 鲍勃史密斯将是 BS 我只需要按前两个字符排序 如何提取某个代表的所有数据 其中字段的前两个字符等于 BS 在某些数据库中你
  • 在Python中检测64位操作系统(windows)

    有谁知道我将如何检测 Windows 在 Python 下的位版本 我需要知道这是一种使用正确的程序文件文件夹的方法 非常感谢 我认为 Mark Ribau 已经发布了该问题的最佳解决方案 Python 2 7 及更高版本的问题的最佳答案是
  • 使用plot.ly Dash 等待结果时显示加载符号

    In my Dash基于应用程序 按钮触发长时间运行的计算 在结果尚未出现时显示加载动画并使按钮处于非活动状态以便在计算完成之前不会再次单击该按钮不是很好吗 我在用Bulma用于 UI 设计并想使用button is loading为此目的
  • 为什么 typescript-eslint 对 enumMember 强制采用驼峰命名法?

    TypeScript 文档中的所有枚举示例写入枚举成员作为帕斯卡命名法 例如 enum Direction Up 1 Down Left Right But typescript eslint 命名约定强制使用驼峰命名法 并拒绝帕斯卡命名法
  • 我可以使用谷歌地图 API v3 来获取位置的时区吗?

    是否可以使用谷歌地图API来获取时区 我已经在使用它的 api 进行地理编码和地图显示 我还想添加时区 但我在文档中找不到任何内容 有任何想法吗 链接 您可以使用时区API 例如 使用 jQuery ajax url https maps
  • NodeJS:如何将base64编码的字符串解码回二进制? [复制]

    这个问题在这里已经有答案了 我正在使用 salt 实现密码哈希 因此我将 salt 生成为二进制 对密码进行哈希处理 对密码和 salt 进行 Base64 编码 然后将它们存储到数据库中 现在 当我检查密码时 我应该将盐解码回二进制数据
  • Android 从布局视图创建并打印 pdf

    我正在尝试从 xml 布局视图创建 PDF 文件 我在该布局中有一个列表视图 添加项目并根据子项设置高度 PDF 正在创建但未填充整个页面 我尝试过的是 PdfDocument PageInfo pageInfo new PdfDocume
  • Android中如何获取唯一的设备硬件ID? [复制]

    这个问题在这里已经有答案了 如何获取 Android 中唯一的设备 ID 该 ID 在执行手机重置或操作系统更新时无法更改 更新 19 11 2019 下面的答案与今天不再相关 因此 对于任何寻找答案的人 您应该查看下面链接的文档 http
  • 使用 java 中的 toUpperCase() 将 ß.cfg 转换为大写

    我正在尝试以下代码 String s1 cfg System out println s toUpperCase 我得到的输出是SS CFG因为 Unicode 没有定义 的大写版本 而我希望输出为 CFG 我有什么办法可以实现这一目标吗
  • 从基于 Flask 的 Python 服务器下载文件

    我正在尝试使用我在以下 URL 找到的代码 http code runnable com UiIdhKohv5JQAAB6 how to download a file generated on the fly in flask for p
  • 如何使用 SWRevealViewController 显示调整大小的侧边栏?

    我在 IOS 应用程序 通用 中使用 SWRevealViewController 我在 iPhone 和 iPad 中都获得了侧边栏 但我想显示覆盖 90 屏幕的侧边栏 我该怎么办 打开SWRevealViewController m文件
  • 通过 pandas 中列名称的子字符串融化列(python)

    我有数据框 subject A target word gd A target word fd B target word gd B target word fd subject type 1 1 2 3 4 mild 2 11 12 13