You can do it like this:
unit.loc[:, 'State'] = [value.split('[edit]')[0].strip() for value in unit.loc[:, 'State']]
replace also works as the others have mentioned:
unit.loc[:, 'State'] = [value.replace('[edit]', '') for value in unit.loc[:, 'State']]
assuming your dataframe is a valid pandas dataframe called "unit" and the desired column label is "State"
For the record, these two methods both outperform the accepted answer:
start_time = timeit.default_timer()
unit["State"] = unit["State"].apply(lambda state: state[: state.index("[edit]")])
print("ACCEPTED ANSWER -> The time difference is :", timeit.default_timer() - start_time)
start_time = timeit.default_timer()
unit.loc[:, 'State'] = [value.split('[edit]')[0] for value in unit.loc[:, 'State']]
print("SPLIT -> The time difference is :", timeit.default_timer() - start_time)
start_time = timeit.default_timer()
unit.loc[:, 'State'] = [value.replace('[edit]', '') for value in unit.loc[:, 'State']]
print("REPLACE -> The time difference is :", timeit.default_timer() - start_time)
ACCEPTED ANSWER -> The time difference is : 0.0015293000000000667
SPLIT -> The time difference is : 0.0010911999999998478
REPLACE -> The time difference is : 0.0007515000000002381