我还是个新手,在提取数据时遇到了一些麻烦,如果数据不清楚,请见谅.
我正在try 从一个大型数据集(>;2亿行)中提取信息,并且需要将它们建立在几个基础之上.
首先,每一行都有一个ID,都是相同的格式,3个字母,然后是一系列数字,单元格中没有额外的信息.
其次,编码单元包含4个字母的编码(CODE、DIFF、RAND等)和单元中的一些其他信息.然而,一个问题是,4个字母的代码有时可以附加到‘SS’,使它们看起来像(CoDeSS,SSDIFF,RANDSS).
最后,Description列包含我要提取的数据,该数据已作为自由文本描述输入.数据的范围在XX12345和XX12345678之间,其中XX是一组2个字母,由(XX|XY|XZ|YZ)组合而成.
例如,我的列如下所示:
ID | CODE | DESCRIPTION |
---|---|---|
ID123 | rdm CODE | Some free text and the data required XX123 |
ID124 | RAND Rdm | Some text, no required data here and more text |
ID125 | DIFFSS... | XY12345 and some text, plus more text within this box, and more desired data XY123456 and also YZ1234567 |
我要做的是将此信息提取到以下格式的新数据框中:
ID | CODE | EXTRACT |
---|---|---|
ID123 | CODE | XX123 |
ID125 | DIFF | XY12345 |
ID125 | DIFF | XY123456 |
ID125 | DIFF | YZ1234567 |
我遇到的一个大问题是,我寻找的大多数命令和一些类似的问题是,使用str.Match或str.Extract似乎只有在每一行都有这些值之一时才起作用,但对于这个数据集来说并非如此.
我try 了很多不同的方法,但一直被困在所有不同的部分,希望有人能用这个把我引向正确的方向?
谢谢!