首页 > 解决方案 > 对数据块执行操作

问题描述

我有一个巨大的文本文件,其中包含我想以新格式重新排序的数据。

*******unwanted headers********
results
- 
1 2 3 4 3 6 7 8
1 2 3 4 2 6 7 8
1 2 3 4 1 6 7 8
1 2 3
-
-
1 2 3 4 3 6 7 8
2 2 3 4 2 6 7 8
1 2 3
-
2 2 3 4 3 6 7 8
1 2 3 4 2 6 7 8
1 2 3
1 2 3
-

输入格式:N、X、Y、E、T、x、y、z

我想做以下事情:

  1. 忽略标题行
  2. 循环每个块(一个块是长度 = 8 的任何连续行)
  3. 将 T 列从低到高排序
  4. 查看 N 列并检查第一行中是否有 1,然后是下一行中的 2(仅适用于长度为 8 的行)
  5. 得到两行的z, y, x, E
  6. 对每个块重复步骤 3、4 和 5
  7. 输出格式应为:z1 y1 x1 E1 z2 y2 x2 E2

这意味着我的代码不应该报告前两个块的结果,因为它们不满足我设置的条件,但第三个块会报告结果。

注意:数据是浮点数,而不是整数。

我已经尝试过这段代码,但它不起作用:

import fileinput
for Line in fileinput.input():
    Line = Line.split()
    if Line == '- ':
        continue
    if len(Line) == 8:
        'apply the conditions'
        continue
    if len(Line) != 8:
        break

标签: pythonpandasnumpydataframe

解决方案


推荐阅读