<p>您的代码有点过度工程化,Python的<code>replace</code>方法会忽略不包含要替换的子字符串的字符串,因此<code>contains</code>调用是不必要的。创建第二个数据帧也是不必要的,<code>pandas</code>可以处理就地替换</p>
<p>要获得所需的结果,可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html" rel="nofollow noreferrer">map</a>,将函数应用于序列中的每个元素(数据帧中的单个列是该序列的一部分),并将其组合到<a href="https://realpython.com/python-lambda/" rel="nofollow noreferrer">lambda function</a>:</p>
<pre><code>df1 = pd.read_csv('2020.csv')
df1['SKU Code'] = df1['SKU Code'].map(lambda x: x.replace('-DG', '')
df1.to_csv('2020DRAFT.csv')
</code></pre>
<p>将其稍微解压缩:</p>
<pre><code>df1['SKU Code'] = df1['SKU Code'].map(lambda x: x.replace('-DG', '')
| | | └─ Create a nameless function which
| | | takes a string and removes '-DG'
| | | from it
| | |
| | └─ ...and run this function on every element...
| |
| └─ ... of the 'SKU Code' column in df1...
|
└── ... Then store the results in that same column
</code></pre>