Pandas读取分隔的txt文件的一部分

时间:2017-05-25 23:55:39

标签: python pandas input text-files delimiter

所以我有一个来自地震实验机输出的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

所以有一个#Endode Node部分,===,#Begin Member secion,用于分隔输出的两个部分。 我想创建两个数据帧,一个用于上面的部分,另一个用于下面的部分。

无需从机器手动编辑输出文件(当结构很大时这不容易),是否可以让pandas从.txt文件中识别零件分隔符(例如,这些行从#,=开始)?

谢谢你们! 最好 肖恩

1 个答案:

答案 0 :(得分:3)

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')