在熊猫中读取不寻常的.txt文本格式

时间:2019-11-07 15:59:05

标签: python pandas dataframe

我的问题确实很简单,但是我不确定熊猫或任何其他图书馆是否有解决此类问题的方法。问题是我有一个.txt文件,格式为波纹管(包括文本“ This is the example ...”)。因此,由于我想读取具有该格式的多个文件,然后继续将其追加到一个数据帧。因此,我想知道是否存在一种简单的读取方式,尽管格式不均匀,没有用逗号或小数点分隔符分隔。

希望我能做到简洁明了。非常感谢您在此方面的帮助!也欢迎您提出查询建议。

我使用记事本C ++打开文件。我还上传了文件here,以防有人想要对其进行测试。

enter image description here

1 个答案:

答案 0 :(得分:4)

您可以将其视为.csv文件,但可以使用制表符(\t)作为与逗号相对的定界符。

pd.read_csv('txt_example.txt', sep='\t', skiprows=2)为我返回了漂亮的数据帧!

编辑:根据header参数下面的建议,可以创建更好的输出;我们可以确保第二行不被视为数据行:

df = pd.read_csv('txt_example.txt', sep='\t', skiprows=2, header=[0,1])
df.head()
Time    RtAxsXT1    RtAxsYT1    RtAxsZT1    RtPosXT1    RtPosYT1    RtPosZT1    YawErrT1    TIAmbT1 CtT1N01 ... WkDfVrT3N17D7   WkDfVrT3N18D7   WkDfVrT3N19D7   WkDfVrT3N20D7   W3VAmbX W3VAmbY W3VAmbZ W3VDisX W3VDisY W3VDisZ
(s) (-) (-) (-) (m) (m) (m) (deg)   (percent)   (-) ... (m/s)   (m/s)   (m/s)   (m/s)   (m/s)   (m/s)   (m/s)   (m/s)   (m/s)   (m/s)
0   0.0 0.9962  0.0 -0.08716    995.0   1000.0  90.0    0.3525  12.28   0.0 ... 0.0 0.0 0.0 0.0 5.902   -0.09767    -0.009375   5.684   -0.09767    0.00971
1   2.0 0.9962  0.0 -0.08716    995.0   1000.0  90.0    1.4390  12.17   0.0 ... 0.0 0.0 0.0 0.0 5.872   -0.16040    0.283000    5.653   -0.16210    0.30040
2   4.0 0.9962  0.0 -0.08716    995.0   1000.0  90.0    0.9589  12.00   0.0 ... 0.0 0.0 0.0 0.0 6.031   -0.11650    0.593000    5.812   -0.11820    0.61040
3   6.0 0.9962  0.0 -0.08716    995.0   1000.0  90.0    2.0930  11.96   0.0 ... 0.0 0.0 0.0 0.0 6.245   0.24430 0.733700    6.025   0.24260 0.75120
4   8.0 0.9962  0.0 -0.08716    995.0   1000.0  90.0    3.1810  12.12   0.0 ... 0.0 0.0 0.0 0.0 6.483   0.79060 0.681000    6.261   0.78890 0.69870
5 rows × 1069 columns