从2个不同的字符串中提取特定文本

时间:2019-08-25 08:38:17

标签: python csv

我有多个csv文件,其名称如下:

'Transfer stab [22(3) _350-300-G22_; 24_04_2019 10_05_43].csv '
'Transfer lin [350-300-10-10(1) _good_; 02_05_2019 14_39_57].csv'

每个文件都包含我要提取的元数据和一些数据值:

A               B                       C
Metadata    TestRecord.RecordTime    05/02/2019 15:31:34
Metadata    TestRecord.TestTarget    350-300-2-2    
MetaData    TestRecord.Remarks       bad
DataName    VG                       VD 
DataValue   -2                       3
DataValue   -1.9500000000000002      3  
...
... 

我想提取每个文件(例如(350-300-G22))的唯一ID 的名称,但是有时它们存储在 TestRecord.Remarks 中在 TestRecord.TestTarget 中。

此外,唯一ID可以附加一个注释,例如:“ 250-300-G23-60sec不亮”

我为所有csv文件创建了一个带有备注和目标列的数据框。

date        filename                                                                    remarks                     target
04/24/2019  Transfer stab [22(3) _350-300-G22_; 24_04_2019 10_05_43].csv                350-300-G22                 22
05/02/2019  Transfer lin [350-300-10-10(1) _good_; 02_05_2019 14_39_57].csv             good                        350-300-10-10
04/24/2019  Transfer stab [25(3) _350-300-G25_; 24_04_2019 14_58_14].csv                350-300-G25                 25
04/23/2019  Transfer sat [(5) _250-300-G23-60sec no light_; 23_04_2019 11_26_55].csv    250-300-G23-60sec no light  None
04/23/2019  Transfer stab [(3) _250-300-G26_; 23_04_2019 12_02_37].csv                  250-300-G26                 None

我现在想用唯一的ID值创建一个新列。我正在考虑通过遮罩检查“-”字符并提取其周围所有内容的东西。

或以字符串形式查找以下格式('nnn-nnn-lnn'),其中n =数字,l =字母。

理想情况下,最终结果将是一个函数,该函数将按照我可以添加以覆盖所有极端情况的一组规则进行过滤。

0 个答案:

没有答案
相关问题