我们正试图从旅行要求中提取旅行路线,这些旅行要求由标准化审计员填写。
示例:
EY 275 13FEB HYDAUH 0425 0715
这里的数据意味着如下
EY> Travel Type
275> Flight Number
13FEB> Date of travel
HYDAUH>Airports involved during the Departure and arrival.
0425 0715 > Boarding and landing times of the flight.
在这里,我们需要从原始文本字段中提取单个数据元素,然后将它们映射到各自的旅行字段并计算多个值。
R / Python中是否有程序以最小的努力实现它们。
我正在寻找数据拆分/映射的subsist函数/过程。
答案 0 :(得分:1)
如果您可以提取单个记录,如第二个示例所示,并且如果字段之间始终至少有一个空格,那么在Python中提取单个数据部分非常简单:
>>> itin = 'EY 275 13FEB HYDAUH 0425 0715'
>>> ifields = itin.split()
>>> ifields[0] # travel type
'EY'
>>> ifields[1] # flight number
'275'
>>> ifields[2] # date of travel
'13FEB'
>>> ifields[3][0:3] # departure airport
'HYD'
>>> ifields[3][3:6] # destination airport
'AUH'
>>> ifields[4] # boarding time
'0425'
>>> ifields[5] # landing time
'0715'
你的第一个例子显示第二个记录直接从第一个记录开始,没有空格 - 这是正确的吗?如果是这样,每条记录的长度总是相同的字符数吗?
>>> itinline = 'QR 529 09AUG MAADOH 0405 0600QR 67 09AUG DOHFRA 0815'
>>> itinline[0:32]
'QR 529 09AUG MAADOH 0405 0600'
>>> itinline[32:64]
'QR 67 09AUG DOHFRA 0815'
如果您的数据在一行中有多个可变长度记录,或者每个字段之间可能存在或不存在空格,则解析变得更加复杂,但在Python中仍然相当容易。在这种情况下,请发布一个包含多个记录的更完整示例,并显示您想要获得的输出。