使用Python识别缺少的文本序列项

2024-05-29 04:06:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个地质数据集,包括钻孔、深度截距和哪个地质单元被相交。一些地质单元交点还没有添加到数据集中,我想使用Python生成缺少交点的钻孔列表。你知道吗

我还想知道交叉口在序列中的什么地方丢失了。理想的输出是显示“钻孔,缺少序列项”的文件。“单位”列中可以接受空值,因为并非每个“从到”间隔都是命名单位。你知道吗

在下面的数据集中,第二个孔在单位序列中缺少“红色SS”。它可能在物理上不存在-但对于我的用例,它需要以零厚度的形式存在于数据库中。输入文件都是csv文件。你知道吗

示例数据集可能如下所示(实际数据集约为15000行):

DRILLHOLE, TOP, BASE, MATERIAL, UNIT
HOLE-A, 0, 5, GRAVEL, 'BILL'S GRAVEL'
HOLE-A, 5, 7, CLAY, <NULL>
HOLE-A, 7, 10, SANDSTONE, 'RED SS'
HOLE-A, 10, 15, CLAYSTONE, <NULL>
HOLE-A, 15, 20, CLAYSTONE, 'BASEMENT'
HOLE-B, 0, 2, GRAVEL, 'BILL'S GRAVEL'
HOLE-B, 2, 4, CLAY, <NULL>
HOLE-B, 4, 11, SANDSTONE, <NULL>
HOLE-B, 11, 17, CLAYSTONE, <NULL>
HOLE-B, 17, 20, CLAYSTONE, 'BASEMENT'

序列列表如下所示(例如):

BILL'S GRAVEL
RED SS
BASEMENT

Tags: 文件数据单位序列nullss单元钻孔
3条回答

查看csv module。csv已经在识别哪些字段是空的,所以你已经有了很大的优势。你知道吗

如果将数据保存在扩展名为.txt的文本文件“data”中,然后在数据文件所在的目录中运行以下代码,则可以找到所有具有空值的行:

data = open("data.txt").read()
dataRows = data.split("\n")
for row in dataRows:
  cells = row.split(",")
  for cell in cells:
    if cell == " <NULL>":
      print row

使用您提供的示例数据输出此代码:

HOLE-A, 5, 7, CLAY, <NULL>
HOLE-A, 10, 15, CLAYSTONE, <NULL>
HOLE-B, 2, 4, CLAY, <NULL>
HOLE-B, 4, 11, SANDSTONE, <NULL>
HOLE-B, 11, 17, CLAYSTONE, <NULL>

您在命名单元的字符串方面遇到了问题。 试着把“for”改成这样:

钻孔、顶部、底部、材料、单位 A洞,0,5,砾石,“比尔的砾石” 孔-A,5,7,粘土,“空”

相关问题 更多 >

    热门问题