Pandas 读取带分隔符的 txt 文件的一部分
Pandas read part of a delimited txt file
所以我有一个地震实验机输出的txt文件:
23 (-9.144, 2.7432, 0) [HybridDamper/Floor 1 Disp m,--,--] #ffffff
24 (-4.572, 0, 0) #ffffff
# End Node section
===
# Begin Member section
gl gr #eeeeee
23 D1 yellow
所以有一个#End Node section,===,#Begin Member section将输出的两部分分开。
我想创建两个数据框,一个用于上面的部分,另一个用于下面的部分。
在不手动编辑机器输出文件的情况下(当结构很大时不容易),是否可以让pandas识别部分分隔符(例如,这些行从#,=开始)来自 .txt 文件?
谢谢大家!
最好
肖恩
from io import StringIO
import pandas as pd
with open('mytext.txt') as f:
txt = f.read()
marker = '# End Node section\n===\n# Begin Member section'
txt1, txt2 = txt.split(marker)
df1 = pd.read_csv(StringIO(txt1), header=None, sep='|')
df2 = pd.read_csv(StringIO(txt2), header=None, sep='\s+', engine='python')
所以我有一个地震实验机输出的txt文件:
23 (-9.144, 2.7432, 0) [HybridDamper/Floor 1 Disp m,--,--] #ffffff
24 (-4.572, 0, 0) #ffffff
# End Node section
===
# Begin Member section
gl gr #eeeeee
23 D1 yellow
所以有一个#End Node section,===,#Begin Member section将输出的两部分分开。 我想创建两个数据框,一个用于上面的部分,另一个用于下面的部分。
在不手动编辑机器输出文件的情况下(当结构很大时不容易),是否可以让pandas识别部分分隔符(例如,这些行从#,=开始)来自 .txt 文件?
谢谢大家! 最好 肖恩
from io import StringIO
import pandas as pd
with open('mytext.txt') as f:
txt = f.read()
marker = '# End Node section\n===\n# Begin Member section'
txt1, txt2 = txt.split(marker)
df1 = pd.read_csv(StringIO(txt1), header=None, sep='|')
df2 = pd.read_csv(StringIO(txt2), header=None, sep='\s+', engine='python')