如何通过删除 NA 值的选项来融合 Pandas 中的数据框

2023-12-24

我有一个像这样的 Pandas 数据框:

df = pd.DataFrame({"VAR1":["V1","V2","V2","V3","V4","V4","V5"], "VAR2":["C1","C1","C1","C2","C2","C2","C3"], "VAR3":["S1","S2","S3","S4","","",""], "VAR4":["","S3","S4","S5","S6","",""], "VAR5":["","S7","","","","","S3"]})

df

我必须将其转换为如下所示的数据框

VAR1  VAR2  VALUE
V1     C1    S1
V2     C1    S2
V2     C1    S3
V2     C1    S7
V3     C2    S4
V3     C2    S5
V4     C2    S6
V5     C3    S3

也就是说,我想融化VAR, VAR4, VAR5根据它们的映射将列合并为单个列VAR1 and VAR2


您可以使用melt http://pandas.pydata.org/pandas-docs/stable/generated/pandas.melt.html with boolean indexing http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing删除空值的行,然后sort_values http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html在列和最后reset_index http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html对于默认单调唯一index:

df = pd.melt(df, id_vars=['VAR1', 'VAR2'], value_name='VALUE').drop('variable', axis=1)
df = df[df.VALUE != ''].sort_values(['VAR1','VAR2']).reset_index(drop=True)
print (df)
  VAR1 VAR2 VALUE
0   V1   C1    S1
1   V2   C1    S2
2   V2   C1    S3
3   V2   C1    S3
4   V2   C1    S4
5   V2   C1    S7
6   V3   C2    S4
7   V3   C2    S5
8   V4   C2    S6
9   V5   C3    S3

如果需要的话也可以drop_duplicates http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html:

df = pd.melt(df, id_vars=['VAR1', 'VAR2'], value_name='VALUE').drop('variable', axis=1)
df = df[df.VALUE != ''].drop_duplicates().sort_values(['VAR1','VAR2']).reset_index(drop=True)
print (df)
  VAR1 VAR2 VALUE
0   V1   C1    S1
1   V2   C1    S2
2   V2   C1    S3
3   V2   C1    S4
4   V2   C1    S7
5   V3   C2    S4
6   V3   C2    S5
7   V4   C2    S6
8   V5   C3    S3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过删除 NA 值的选项来融合 Pandas 中的数据框 的相关文章

随机推荐

  • aws cli get 错误“请求中包含的安全令牌无效”

    I did aws configure并测试它之前是否有效 但今天没用 我在尝试获取托管区域时收到错误 aws route53 list hosted zones An error occurred InvalidClientTokenId
  • Hudson 不会从 Git 获取

    我已经打了一天多了 这让我发疯了 我在Win7 PC上安装了Git 并选择 PuttyGen 选项 安装 我已经生成了 ssh 密钥 使用 PuttyGen 我已经添加了ssh 密钥到我的 Git 帐户 并链接 选美比赛中的私钥 我已经设置
  • 为 Bson.M mongodb 创建自定义 mashler/unmashler 时出错

    我收到错误WriteValueBytes can only write while positioned on a Element or Value but is positioned on a TopLevel当尝试为 bson M 创建
  • PyTuple_SetItem 的限制

    我有一个 Python 扩展模块 它创建一个元组作为另一个对象的属性 并在元组中设置项目 每当我在Python中执行这个模块时 我总是收到错误SystemError bad argument to internal function 阅读完
  • 为什么Cppcheck没有发现这个明显的数组越界错误?

    我安装了Cppcheck http cppcheck sourceforge net 我的 C 项目的静态代码分析工具 感觉它的性能很差 例如 谁能告诉我whyCppcheck无法在以下代码中找到数组越界错误 void f int c ch
  • 从 C# 在 PowerShell 6 中运行 PowerShell 脚本

    我有一个与 REST 服务器通信的 PowerShell 脚本 该脚本仅适用于 PowerShell 6 我想从 C 调用它 因为 C 程序需要来自 REST 服务器的信息 并且我不想用 C 重写 REST 代码 基本上 我想从 C 运行
  • 操作系统级别的睡眠是如何实现的?

    我只是感兴趣如何sleep time in ms 是在 C 库中实现的 或者基本上是在操作系统级别实现的 我猜 可能是基于处理器速度 你做了一个 nop 的 while 循环 我不确定睡眠时间是否准确 处理器中的任何特殊寄存器 您在其中写入
  • ASIHTTPRequest 中 POST 中的正文为空

    基本上 我发送一个带有空数据正文的 POST 请求 ASIHTTPRequest request ASIHTTPRequest alloc init request setURL NSURL URLWithString escapedUrl
  • Docker 未知速记标志:-aq 中的“a”)

    我有多个正在运行的 docker 版本 18 09 0 构建 4d60db4 容器 我希望立即停止它们 这篇博文 http blog baudson de blog stop and remove all docker containers
  • 将文件名设置为 Blob 文件

    我想向我的 Blob 文件添加一个文件名 但我真的不知道该怎么做 这是我目前的代码 onClick var myHeader new Headers myHeader append Content Type text plain fetch
  • 如何加密 web.config 中的一项

    ASP NET 4 我用过RSA密钥加密 http msdn microsoft com en us library ff650304 aspx paght000006 webfarmscenarios用于我的网络场的 web config
  • ThreadLocal - 用作带有 spring-boot 的 REST API 的上下文信息

    我有一些spring boot应用程序 它公开了 REST API 提到的 REST API 是由spring security 一切都很好 但是现在我需要设置上下文 用于服务请求 设置上下文是指根据用户上下文选择数据源 关键是Routin
  • Unity Shader - 如何有效地重新着色特定坐标?

    首先 请允许我解释一下我所得到的内容 然后我将讨论接下来我想要弄清楚的内容 我有什么 我有一个带纹理的自定义网格 其一些边缘与 Unity 中的整数世界坐标完全对齐 在网格中 我添加了自己的粗略但有效的自定义表面着色器 如下所示 Shade
  • Swift Closure 中的可选链接,返回类型必须为 Void

    我正在创建一个脚本的双向链接列表 MSScripts 应该有自己的run 实现 然后他们调用下一个脚本 rscript 当他们准备好时 我想创建的脚本之一只是一个延迟 它看起来像这样 class DelayScript MSScript v
  • Django - ManyToManyRelation 中的级联删除

    使用以下相关模型 一篇博客文章可以有多个修订版 class BlogEntryRevision models Model revisionNumber models IntegerField title models CharField m
  • lua 中的准引用/引用?

    在 Lisp 中 我可以 a b c d e f g 意思是 look up b c d e f g look up a apply value of a to above 那么 我还可以 a b c d e f g 这相当于 list a
  • $_ 与命名输入或循环参数有何不同?

    由于我经常使用 我想更好地理解它的用法 据我理解和使用 是隐式值的全局变量 由于 似乎无论如何都已设置 是否有理由在 上使用命名循环变量besides可读性 在什么情况下 是全局变量很重要 所以如果我使用 for array print o
  • 后记 - 文档大小

    附言中如何设置页面大小 如何将文档旋转到宽度 Example 1 newpath 100 200 moveto 200 250 lineto 100 300 lineto 2 setlinewidth stroke showpage 谢谢
  • 如何在 Jenkins 中将安全类型从 SSL 更改为 TLS?

    我正在尝试设置 smtp 电子邮件通知 我可以看到 Gmail 部分工作正常 我想为我的 Office 365 配置它 smtp服务器 smtp office365 com 我们没有配置 SSL 相反 我们使用 TLS 如何在 Jenkin
  • 如何通过删除 NA 值的选项来融合 Pandas 中的数据框

    我有一个像这样的 Pandas 数据框 df pd DataFrame VAR1 V1 V2 V2 V3 V4 V4 V5 VAR2 C1 C1 C1 C2 C2 C2 C3 VAR3 S1 S2 S3 S4 VAR4 S3 S4 S5 S