如何将列的标记值解析为 Pandas Dataframe(缺少某些列值)?

2024-07-03

以下是我的未标记数据集的两行,这是一个小子集:

random1 147 sub1    95  34  dewdfa3 15000   -1238   SBAASBAQSBARSBATSBAUSBAXBELAAX  AAA:COL:UVTWUVWDUWDUWDWW    BBB:COL:F   CCC:COL:GTATGTCA    DDD:COL:K20 EEE:COL:54T GGG:COL:-30.5   HHH:COL:000.1   III:COL:2   JJJ:COL:0   

random2 123 sub1    996 12  kwnc239 10027    144        LBPRLBPSLBRDLBSDLBSLLBWB    AAA:COL:UWTTUTUVVUWWUUU BBB:COL:F   DDD:COL:CACGTCGG    EEE:COL:K19 FFF:COL:HCC16   GGG:COL:873 III:COL:-77 JJJ:COL:0   KKK:COL:0   LLL:COL:1   MMM:COL:212

前九列在整个数据集中是一致的,并且可以进行标记。

我的问题是以下几列。然后,该行中的每个值首先用列值进行标记,例如AAA:COL:UVTWUVWDUWDUWDWW是列AAA, BBB:COL:F是列BBB, etc.

但是,(1) 每行的列数不同,并且 (2) 某些列“缺失”。第一行缺少列FFF,第二行跳过列CCC and HHH.

另请注意,第一行停在列处JJJ,而第二列停止于列MMM.

如何分配数据帧的 9 + 13 列,并解析这些值,以便如果column:value对不存在,该列将有一个NaN value.

会喜欢吗pandas.read_table()有这个功能吗?

这是第一行的“正确”格式:

random    int     sub    int2    int3    string1    int4    int5    string2                         AAA            BBB    CCC    DDD    EEE    FFF    GGG .... MMM
random1   147    sub1    95      34      dewdfa3    15000   -1238   SBAASBAQSBARSBATSBAUSBAXBELAAX  UVTWUVWDUWDUWDWW    F   DFADFADFA   K20 54T 'NaN' -30.5 ....'NaN'

相关(且未回答)的问题在这里:如何将未标记和缺失的列导入 pandas 数据框中? https://stackoverflow.com/questions/38491645/how-to-import-unlabeled-and-missing-columns-into-a-pandas-dataframe


这将做到这一点:

text = """random1 147 sub1    95  34  dewdfa3 15000   -1238   SBAASBAQSBARSBATSBAUSBAXBELAAX  AAA:COL:UVTWUVWDUWDUWDWW    BBB:COL:F   CCC:COL:GTATGTCA    DDD:COL:K20 EEE:COL:54T GGG:COL:-30.5    HHH:COL:000.1   III:COL:2  JJJ:COL:0   
random2 123 sub1    996 12  kwnc239 10027    144        LBPRLBPSLBRDLBSDLBSLLBWB    AAA:COL:UWTTUTUVVUWWUUU BBB:COL:F   DDD:COL:CACGTCGG    EEE:COL:K19 FFF:COL:HCC16   GGG:COL:873 III:COL:-77 JJJ:COL:0   KKK:COL:0   LLL:COL:1   MMM:COL:212"""

data = [line.split() for line in text.split('\n')]
data1 = [line[:9] for line in data]
data2 = [line[9:] for line in data]

# list of dictionaries from data2, where I parse the columns
dict2 = [[dict([d.split(':COL:') for d in d1]) for d1 in data2]

result = pd.concat([pd.DataFrame(data1),
                    pd.DataFrame(dict2)],
                   axis=1)

result.iloc[:, 9:]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将列的标记值解析为 Pandas Dataframe(缺少某些列值)? 的相关文章

  • matlab的imregionalmax()和scipy.ndimage.filters.maximum_filter有什么区别

    我需要找到图像的区域最大值以获得用于分水岭分割的前景标记 我在 matlab 中看到使用该函数imregionalmax http www mathworks com help images ref imregionalmax html 由
  • 是否可以在所有平台上确定性地从 jpeg 文件中读取像素?

    我遇到一个问题 我发现 JPEG 图像中的像素可能会略有不同 具体取决于我用来读取它们的计算机 我主要是一名Python程序员 我更喜欢使用opencv来读取我的图像 但我不反对使用PIL做一些事情或用C读取图像 根据这篇文章JPEG 图像
  • 从Python运行Scrapy

    我正在尝试从 Python 运行 Scrapy 我正在查看这段代码 source http doc scrapy org en 0 16 topics practices html from twisted internet import
  • 配置 argparse 以接受带引号的参数

    我正在编写一个程序 除其他外 它允许用户通过参数指定要加载的模块 然后用于执行操作 我试图建立一种方法来轻松地将参数传递到这个内部模块 并且我试图使用 ArgParse 的action append 让它构建一个参数列表 然后我将通过它 这
  • Flask:如何从模板目录下提供静态文件?

    我使用 Flask 并想要更改我的资产文件夹目录 这是我的文件夹结构 python static js img font css templates default css js img venv app py 我想移动静态文件夹下的所有文
  • 如何在 Python 3 中使用 smtplib.sendmail() 对收件人姓名(而不是地址)中的国际字符进行编码?

    我在 Python 3 程序中使用标准 smtplib sendmail 调用来发送电子邮件 如下所示 smtp session sendmail The Sender lt email protected cdn cgi l email
  • ipython:如何设置终端宽度

    当我使用ipython terminal并想要打印一个numpy ndarray它有很多列 行会在大约 80 个字符处自动断行 即行的宽度为 cca 80 个字符 z zeros 2 20 print z 据推测 ipython 预计我的终
  • 如何使用Python读取MP3中的ID3标签? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人有在 MP3 文件或 WMA 文件中读写 ID3 标签的经验吗 有一些库 但我想从头开始 深入Python https web a
  • Pandas:处理测试中看不见的数据

    我有一个训练数据集 正在构建一些机器学习模型 我无权访问测试集 并且想要处理在训练中未观察到测试中的分类特征之一的可能性 这是一个玩具示例 说明了我的意思 我有一个数据框 old 像这样 old pd DataFrame car Audi
  • 包装 np.arrays __pow__ 方法

    我只是重新审视我的一些代码以提高性能 并遇到了一些奇怪的事情 a np linspace 10 1000 1000000 reshape 1000 1000 timeit np square a 100 loops best of 3 8
  • 如何从python3中的单行输入读取整数数组

    我想从 python3 中的单行输入读取整数数组 例如 将此数组读取到变量 列表 1 3 5 7 9 我尝试过的 arr input split 但这不会将它们转换为整数 它创建字符串数组 arr input split for i val
  • id 是 python 中的关键字吗?

    我的编辑器 TextMate 显示id使用与我常用的变量名称不同的颜色 当用作变量名称时 是关键字吗 我不想遮蔽任何关键字 id不是一个keyword在Python中 但它是一个的名字内置功能 http docs python org li
  • Lightgbm OSError,库未加载

    如果我简单地这样做 import lightgbm as lgb 我越来越 python script py Traceback most recent call last File script py line 4 in
  • 剥离功能未按预期工作

    def sstrip a b raw input enter the string to be stripped off i a strip b print i k raw input enter the string sstrip k o
  • 与 C 数组相比,带有 NumPy 数组内存视图的 Cython 性能较差

    我遇到了一个非常奇怪的结果基准 http nbviewer ipython org github rasbt One Python benchmark per day blob master ipython nbs day4 python
  • Django 会话竞争条件?

    摘要 Django 会话中是否存在竞争条件 如何防止它 我在 Django 会话方面遇到了一个有趣的问题 我认为该问题涉及由于同一用户同时发出请求而导致的竞争条件 它发生在一个同时上传多个文件的脚本中 正在本地主机上进行测试 我认为这使得同
  • 如何让机器人加入语音频道discord.py

    我正在使用 Discord py 创建音乐机器人 但我在将该机器人连接到语音通道时遇到问题 我使用 Cog 将音乐功能与其他功能分开 commands command async def join voice self ctx channe
  • 无法在 Debian lenny 上安装 python 模块“pycrypto”

    我尝试通过下载源代码并执行以下命令来安装 pycrypto 模块python setup py install 然后出现错误 running install running build running build py running bu
  • Python 与 Hive 的连接

    我安装了 Hortonworks Hive ODBC 驱动程序并在数据源中创建了连接 我测试了它并且成功了 我安装了PyODBC并编写了以下代码 import os sys pyodbc con pyodbc connect DSN MyC
  • 您使用哪种 IDE(如果有)构建 python GUI 项目?

    是否有任何 IDE 如 VS 支持拖放来构建 python GUI 连接到数据库等 尽管我是一个 emacs 爱好者 但我发现使用 VS 创建 GUI 更容易 仅对于 GUI 我发现 VisualWx http visualwx alter

随机推荐