我正在尝试使用Pandas来分析s结构分析软件的文本文件输出。 该文件有24000多行,可以分为几个部分,每个部分以$开头,例如:
$ STORIES - IN SEQUENCE FROM TOP
STORY "PLATFORM" HEIGHT 51.9996
STORY "BULKHEAD" HEIGHT 117
STORY "EMR" HEIGHT 124.9992
STORY "Roof" HEIGHT 140.0004 SIMILARTO "41st FL"
$ GRIDS
GRIDSYSTEM "G1" TYPE "CARTESIAN" BUBBLESIZE 60
GRID "G1" LABEL "g" DIR "X" COORD -1068 VISIBLE "Yes" BUBBLELOC "End"
GRID "G1" LABEL "d" DIR "X" COORD -586 VISIBLE "Yes" BUBBLELOC "End"
GRID "G1" LABEL "d.3" DIR "X" COORD -460 VISIBLE "Yes" BUBBLELOC "End"
我可以使用pd.read_csv并为每个参数指定skip_row参数,但是当文本文件很大时,这是非常重复和愚蠢的。 由于输出文件的格式非常好,有没有办法按$ ...的标题将文本文件解析为部分,并为$ ...以下的行创建pd.dataframe?
我猜这可能有用,但我必须指定txts的数量:
marker = '$'
txt1, txt2, txt3, txt4 = txt.split(marker)
另外,我可以指定正则表达式标记吗?
答案 0 :(得分:2)
您可以使用split函数创建节(并且您不必指定txts的数量)。 split函数返回一个列表对象。列表中的每个元素都代表一个部分。
sections = txt.split("$")
现在您可以遍历列表。
for actual_section in sections:
print actual_section
有关更多信息,请阅读有关拆分功能here的文档。