将单元格值转换为列标题,如果在 python 中匹配则用 1 填充

2023-12-22

我有一个数据框:

df
ID 0   1   2    3  4 .... 
1  10  20  5    1  2 ....
2  3   4   NaN    10 1 ....

我需要转置该列的单元格值0,1,2,3,4...到列标题,如果相应 ID 存在单元格值,则将其填充为 1。

期望的输出:

ID 1 2 3 4 5 ... 10 20 ..
1  1 1 0 0 1 ... 1  1  ..
2  1 0 1 1 0 ... 1  0  ..

请注意,某些条目可以是NaN.

我怎样才能得到想要的输出?


Use DataFrame.set_index http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_index.html with DataFrame.stack http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.stack.html删除缺失值,然后通过以下方式创建指标get_dummies http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.get_dummies.html并返回1/0 by max按第一级,最后将列转换为整数:

df1 = (pd.get_dummies(df.set_index('ID').stack())
         .max(level=0)
         .rename(columns=int)
         .reset_index())
print (df1)
   ID  1  2  3  4  5  10  20
0   1  1  1  0  0  1   1   1
1   2  1  0  1  1  0   1   0

EDIT:

print (df)
   ID   0   1    2   3  4  5
0   1  10  20  5.0   1  2  5
1   2   3   4  NaN  10  1  2

If use max然后总是在输出中0/1值(检查第 5 列):

df1 = (pd.get_dummies(df.set_index('ID').stack())
         .max(level=0)
         .rename(columns=int)
         .reset_index())
print (df1)
   ID  1  2  3  4  5  10  20
0   1  1  1  0  0  1   1   1
1   2  1  1  1  1  0   1   0

但如果使用sum它计算值(检查 5 列):

df2 = (pd.get_dummies(df.set_index('ID').stack())
         .sum(level=0)
         .rename(columns=int)
         .reset_index())
print (df2)
   ID  1  2  3  4  5  10  20
0   1  1  1  0  0  2   1   1
1   2  1  1  1  1  0   1   0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将单元格值转换为列标题,如果在 python 中匹配则用 1 填充 的相关文章

随机推荐

  • iPad 未显示在 OSX Safari 上的“开发”菜单中

    我需要在 iPad 上调试 HTML 应用程序 我以前可以通过 USB 线将 ipad 连接到我的 Mac 它会显示在 Safari 的 开发 菜单中 我现在有两台 ipad 一台装有 iOS 6 另一台装有 iOS 7 iOS 6 的一台
  • Django 中的字节范围[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Django 中是否有 HTTP 字节范围的现有实现 IE 当客户端发送 Range 标头时 我希望我的
  • 是否有更有效或更简洁的方法来使用 tidyr::gather 使我的数据看起来“整洁”?

    我是使用 tidyverse 的新手 我想看看我使用这个包中的函数是否尽可能高效 简洁 我怀疑我不是 我的原始数据将键符号作为每个列名称的一部分 day a x b x a y b y 1 1 0 56047565 1 2240818 1
  • iOS9 更新 AFNetworking 调用以使用 HTTPS 的正确方法是什么(错误 -1200、-9824)?

    我正在从 iOS 8 切换到 iOS 9 之前通过 HTTPS 进行的 AFNetworking Web 服务调用不再有效 我越来越error 1200 and error 9824该问题与使用自签名证书有关 错误域 kCFErrorDom
  • RoundUp - AngularJS

    我正在使用以下代码来尝试和总结在角度 总体上有效 但是小于 0 5 的数字四舍五入为 0 我想round up每个数字到下一个整数 例如 0 02 应四舍五入为 1 data Virtual SumCores data Physical S
  • Java 返回错误“无法实例化类型”[重复]

    这个问题在这里已经有答案了 当我尝试初始化新对象时收到此错误消息 Cannot instantiate the type Car My code 主程序 java public class Main public static void m
  • Pex 和 Moles 项目还活跃吗?

    他们过去每月发布两个新版本 但自 2010 年 10 月以来 他们没有发布新版本 我发现了this http social msdn microsoft com Forums en pex thread e59d72ae 29fd 4251
  • 如何在交互式变基期间取消暂存文件(从旧提交中删除文件)?

    我读过Pro Git关于交互式变基以更改多个提交的书 所以我正在做git rebase HEAD 3 改了我想修改的一项edit 然后我可以通过更改消息git commit amend 并通过添加一个文件git add file3之后git
  • 打印和格式化字符串文字有什么区别?

    当我们可以使用第 8 行和第 9 行代码时 使用代码有什么意义print比如10号线 my name Zed A Shaw my age 35 my height 74 my weight 180 my eyes Blue my teeth
  • 如果我将数组初始化为大小 0 会发生什么?

    假设我有一个类似的函数 void myFunc List
  • AJAX 响应时间

    如何计算 AJAX 响应时间 我在脚本中需要这个 因为我得到服务器时间戳 但如果请求花费超过 1 秒 我需要在时间戳上添加 1 秒 您需要获取开始时间 就在 AJAX 请求完成之前 然后获取脚本完成时的结束时间 然后您可以计算出差异 如果大
  • pySerial 2.6:在 readline() 中指定行尾

    我正在使用 pySerial 向 Eddie 发送命令 我需要在我的阅读行中指定回车符 但 pySerial 2 6 去掉了它 有解决方法吗 这里有艾迪命令集 https www parallax com sites default fil
  • Spring data jpa,外部化本机查询

    我正在使用 Spring data jpa 来执行本机查询 这是示例 Query value select name from customer nativeQuery true public List
  • 播放 iOS 时从 HLS 流(视频)中提取/录制音频

    我正在使用 AVPlayer 播放 HLS 流 当用户按下录制按钮时 我还需要录制这些流 我使用的方法是分别录制音频和视频 然后最后合并这些文件以制作最终视频 并且远程 mp4 文件成功 但现在对于 HLS m3u8 文件 我可以使用 AV
  • log4j 用于独立的 java 项目

    我正在考虑将 log4j 用于我的独立 java 项目 是否可以将它用于 java 项目 而不是网络应用程序 如果可能的话 我应该如何初始化属性文件以及应该在哪里初始化 我放置了属性文件 目录结构 任何帮助表示赞赏 是的 这是可能的 我们一
  • Bing API v1 文档

    有谁知道我可以在哪里找到 Bongs API 的最新文档 网址如下 https api datamarket azure com Bing Search v1 Web 甚至他们自己的网站在我读过的单词文档中也有错误的 URL 即https
  • 列包含列 2

    我有一个数据框 我想测试 C 在每行上 B 列中的数字是否在字符串 A 列中 df pd DataFrame A me 123 me 123 1234 me 12 123 and B 123 123 123 123 6 我想得到 A B C
  • JPA继承entitymanager.find产生ClassCastException

    我有一个这样的类层次结构 Entity Table name call distribution policies Inheritance strategy InheritanceType JOINED public class CallD
  • 如何在 SQL Server 中使用 Switch

    我想用CASE在我的存储过程中 我的代码中出现一些语法错误 select case Temp when 1 then selectoneCount selectoneCount 1 when 2 then selectoneCount se
  • 将单元格值转换为列标题,如果在 python 中匹配则用 1 填充

    我有一个数据框 df ID 0 1 2 3 4 1 10 20 5 1 2 2 3 4 NaN 10 1 我需要转置该列的单元格值0 1 2 3 4 到列标题 如果相应 ID 存在单元格值 则将其填充为 1 期望的输出 ID 1 2 3 4