python - pandas - 将具有相同名称和不同缺失数据的多个列移动到单个列中,然后删除重复的列
问题描述
我有一个看起来像这样的数据框:
Col1 | Col2 | Col1 | Col3 | Col1 | Col4
a | d | | h | a | p
b | e | b | i | b | l
| l | a | l | | a
l | r | l | a | l | x
a | i | a | w | | i
| c | | i | r | c
d | o | d | e | d | o
Col1
在数据框中重复多次。在每个Col1
中,都缺少信息。我需要创建一个包含每次Col1
出现的所有信息的新列。
如何创建包含完整信息的列,然后删除以前的重复列?
多列中可能缺少某些信息。此脚本还打算在将来可能存在一、三、五或任意数量的重复Col1
列时使用。
所需的输出如下所示:
Col2 | Col3 | Col4 | Col5
d | h | p | a
e | i | l | b
l | l | a | a
r | a | x | l
i | w | i | a
c | i | c | r
o | e | o | d
我一直在看这个问题,但我不清楚如何Col1
以完整的价值观保持期望。我可以删除多个同名的列,但我需要先创建一个包含完整信息的列。
解决方案
首先将列中的空值替换nan
为如下:
import numpy as np
df = df.replace(r'^\s*$', np.nan, regex=True)
然后,您可以使用groupby
然后first()
df.groupby(level = 0, axis = 1).first()
推荐阅读
- python - 同一代码中的一站式图形如何重叠?
- ruby - 解析器的未定义方法“deprecation_reason”
- selenium-webdriver - 尝试输入文本字段值时出现 Serenity 错误“分离事件”
- sql-server - 请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 未注册(SSIS 从 Access 源填充 SQL 表)
- sql - 有没有办法从文件系统备份中恢复 oracle 数据库
- xamarin - Xamarin Shell 中未设置活动 Shell 项
- javascript - TS2403:后续变量声明必须在反应中具有相同的类型
- java - 如何以编程方式在 Liferay DXP 中的每个类别下创建子类别?
- python - reportLab 使用大量内存生成大型 PDF 文件
- css - Django,强制重新加载 css/js,并收集静态