擅长:python、mysql、java
<p>使用矢量化<code>str.lstrip</code>:</p>
<pre><code>temp_dataframe['PPI'] = temp_dataframe['PPI'].str.lstrip('PPI/')
</code></pre>
<p>看起来您可能缺少值,因此应将这些值屏蔽掉或替换为:</p>
<pre><code>temp_dataframe['PPI'].fillna('', inplace=True)
</code></pre>
<p>或者</p>
<pre><code>temp_dataframe.loc[temp_dataframe['PPI'].notnull(), 'PPI'] = temp_dataframe['PPI'].str.lstrip('PPI/')
</code></pre>
<p>也许更好的方法是使用<code>str.startswith</code>进行筛选,并使用<code>split</code>访问要删除的前缀后面的字符串:</p>
<pre><code>temp_dataframe.loc[temp_dataframe['PPI'].str.startswith('PPI/'), 'PPI'] = temp_dataframe['PPI'].str.split('PPI/').str[1]
</code></pre>
<p>正如@JonClements指出的,<code>lstrip</code>正在删除空白,而不是删除前缀,这正是您所追求的。</p>
<p><strong>更新</strong></p>
<p>另一种方法是传递一个正则表达式模式,该模式查找可选前缀并提取前缀后的所有字符:</p>
<pre><code>temp_dataframe['PPI'].str.extract('(?:PPI/)?(.*)', expand=False)
</code></pre>