Ваш код немного перегружен, метод Python replace
игнорирует строки, которые не содержат подстроку, которую вы хотите заменить, поэтому вызов contains
не требуется. Создание второго фрейма данных также не требуется, pandas
может иметь дело с заменами на месте.
Для достижения желаемого результата вы можете использовать карту , которая применяет функцию к каждому элемент в серии (который представляет собой один столбец из DataFrame), объединенный в лямбда-функцию :
df1 = pd.read_csv('2020.csv')
df1['SKU Code'] = df1['SKU Code'].map(lambda x: x.replace('-DG', '')
df1.to_csv('2020DRAFT.csv')
Распаковка это немного:
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