pandas 使用lasio库阅读LAS文件不会处理日期时间列中的“-”

4uqofj5v  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(110)

我有一个las文件,我正试图使用lasio库在python中读取它,其中一列是TIME,格式如下:00:00:00.22-04-23
las文件复制的数据示例:

TIME               col1 col2
00:00:00.22-06-23  1010  20
00:00:05.22-06-23  1020  25
00:00:10.22-06-23  1015  32

读取数据的代码:

df = lasio.read(file_path).df().reset_index()

这将以以下格式返回df

TIME               col1 col2 UNKNOWN:1  UNKNOWN:2
00:00:00.22         -06 -23    1010       20
00:00:05.22         -06 -23    1020       25
00:00:10.22         -06 -23    1015       32

正如您所看到的,我的TIME列被拆分为三列,每隔一个-。来自col1col2的数据已被移位到UNKNOWN:1UNKNOWN:2(可能这些列是在阅读过程中由lasio创建的)。我需要它返回原始形式的TIME列,并避免移动col1col2的值,因此一旦将TIME读入 Dataframe ,我就可以使用pandas剥离、拆分和操作TIME
任何建议都很感激。

vsdwdz23

vsdwdz231#

您可以尝试使用pd.read_csv和正确的分隔符。例如:

df = pd.read_csv('your_file.txt', sep=r"\s+", engine="python")
print(df)

图纸:

TIME  col1  col2
0  00:00:00.22-06-23  1010    20
1  00:00:05.22-06-23  1020    25
2  00:00:10.22-06-23  1015    32

编辑:使用更新的文件:

import re
import pandas as pd
from io import StringIO

with open('your_file.txt', 'r') as f_in:
    data = re.sub(r'\A.*~A', '', f_in.read(), count=1, flags=re.S)
    df = pd.read_csv(StringIO(data), sep=r"\s+", engine="python")

print(df)

图纸:

TIME     col1  col2   col3
0  00:00:00.23-04-23  1977.47   160  160.5

相关问题