Вы можете использовать np.where
для условной замены прямо в исходном фрейме данных, а затем сохранить его в Excel.
df = pd.DataFrame({
'Environment': ['SIMM', 'notSIMM', 'SIMM'],
'start_value': ['793951420', '793951420', 'something else']
})
print(df)
Environment start_value
0 SIMM 793951420
1 notSIMM 793951420
2 SIMM something else
ENVIRONMENT = 'SIMM'
df['start_value'] = np.where(df.Environment.str.match(ENVIRONMENT),
df['start_value'].str.replace('793951420','793956789'),
df['start_value'])
print(df)
Environment start_value
0 SIMM 793956789 <-- only this changed
1 notSIMM 793951420
2 SIMM something else
Изменить: для вашего конкретного случая c (обратите внимание, это сохраняет вывод в новый лист Sheet2
:
import pandas as pd
ENVIRONMENT="SIMM"
excel_file_name=r'C:\Users\spadravsasthu\Desktop\SVN\HSRI-DEV\TEST\checklist.xlsx'
df = pd.read_excel(excel_file_name,sheet_name='Sheet1',keep_default_na=False)
df = df[['Environment', 'Available chunk start value','Available chunk end value']]
df['Available chunk start value'] = np.where(df.Environment.str.match(ENVIRONMENT),
df['Available chunk start value'].str.replace('793951420','793956789'),
df['Available chunk start value'])
with pd.ExcelWriter(excel_file_name, mode='a') as writer:
df.to_excel(writer, sheet_name='Sheet2')