擅长:python、mysql、java
<p>使用<code>apply</code>是出了名的慢,因为它没有利用多线程(例如,请参见<a href="https://stackoverflow.com/questions/26784164/pandas-multiprocessing-apply">pandas multiprocessing apply</a>)。相反,请使用内置的:</p>
<pre><code>>>> import pandas as pd
>>> df = pd.DataFrame([["some-data", "1-xxxx"], ["more-data", "1-yyyy"], ["other-data", "2-xxxx"]])
>>> df
0 1
0 some-data 1-xxxx
1 more-data 1-yyyy
2 other-data 2-xxxx
>>> df["Derived Column"] = df[1].str.split("-", expand=True)[0]
>>> df
0 1 Derived Column
0 some-data 1-xxxx 1
1 more-data 1-yyyy 1
2 other-data 2-xxxx 2
</code></pre>
<p>在这里,我假设在连字符之前可能有多个数字(例如<code>42-aaaa</code>),因此需要额外的工作来拆分列并获取拆分的第一个值。如果您只是获取第一个字符,请执行<a href="https://stackoverflow.com/users/2566283/teepee">@teepee</a>在其答案中所做的操作,只对字符串进行索引</p>