擅长:python、mysql、java
<p>使用<code>positive lookbehind</code>在<code>{semicolon}{two numbers}{space}</code>上拆分:</p>
<p>详情:</p>
<ul>
<li><code>(?<=)</code>是正向lookback(检查字符串前面是否有任何内容)</li>
<li><code>:\d{2}</code>是模式:<code>{semicolon}{two numbers}</code></li>
<li><code>\s</code>是空白</li>
</ul>
<p><strong>结论</strong>:我们在<code>whitespace</code>上分裂,但前提是前面有上述模式。你知道吗</p>
<pre><code>s = df['data'].str.split('(?<=:\d{2})\s')
df['date'] = s.str[0]
df['machine'] = s.str[1]
df = df.drop(columns='data')
</code></pre>
<p>或者作为<code>piRSquared</code>&;<code>jezrael</code><a href="https://stackoverflow.com/questions/58559343/pandas-split-after-month-day-time-from-rest-of-string/58559476#comment103439330_58559476">suggest in the comments</a>,在一行中:</p>
<pre><code>df['date'], df['machine'] = zip(*df.pop('data').str.split('(?<=:\d{2})\s'))
</code></pre>
<p><strong>输出</strong></p>
<pre><code> date machine
0 Oct 22 12:56:52 server1
1 Oct 22 12:56:52 server2
2 Oct 22 12:56:53 server2
3 Oct 22 12:56:54 server2
4 Oct 22 12:56:56 comp2
</code></pre>