<p>编辑:这是我能得到的最接近正则表达式。不幸的是,任何空白字段(如列<code>GH</code>行4和5)都将无法正确处理,数据将发生倾斜。你知道吗</p>
<p>请注意,我在iPhone上,所以您需要替换所有双引号(“)。你知道吗</p>
<p>正则表达式<code>[^0-9A-Z\?\-]+</code>将匹配任何不符合以下条件的字符:</p>
<ul>
<li>数字0-9</li>
<li>大写字母</li>
<li>问号</li>
<li>连字符</li>
</ul>
<p>对于一个或多个组合。。。你知道吗</p>
<p>这将删除奇怪的特殊字符并处理多个空格分隔符。你知道吗</p>
<p>您将在开始处得到一个额外的空白列。你可以用更多的正则表达式来处理这个问题,但是我会留给你做一些家庭作业(宿醉)。你知道吗</p>
<p>列<code>SC/LY</code>将被分成两部分。通过两个阶段的划分(不使用熊猫开始),你可能可以处理这个问题。你知道吗</p>
<pre><code>>>> import re
>>> regex_string = r”[^0-9A-Z\?\-\/]+”
>>> p=re.compile(regex_string)
>>> header
' IFJ SC/LY AB CD? EF GH IJK LM NO PQR ST UV WXY ZA BC DEF GHI'
>>> single_row
' 1234 SC 125 ^ 1 101? - -? 7 3 3? - -? - -? 10'
>>> p.split(header)
['', 'IFJ', 'SC' , 'LY', 'AB', 'CD?', 'EF', 'GH', 'IJK', 'LM', 'NO', 'PQR', 'ST', 'UV', 'WXY', 'ZA', 'BC', 'DEF', 'GHI']
>>> p.split(single_row)
['', '1234', 'SC', '125', '1', '101?', '-', '-?', '7', '3', '3?', '-', '-?', '-', '-?', '10']
</code></pre>
<p>对于熊猫来说,这看起来像:</p>
<pre><code>>>> import pandas
>>> df = pandas.read_csv(filepath, skiprows=1, header=True, delimiter= r”[^0-9A-Z\?\-]+”, engine=“python”)
</code></pre>