Как правило, вы хотите избежать итерации строк в кадре данных pandas, поскольку он медленнее, чем другие методы, созданные pandas для выполнения того же действия.Один из способов обойти это - использовать apply .Вы должны переопределить столбец number
:
df["number"] = df["number"].apply(lambda x: int(x) if x.is_integer() else x)
и (пере) определить столбец string
:
df["string"] = df["other column"].apply(lambda x: x.split("\\")[0] + x.split("\\")[1] if x == r"XX\X" else x.split("\\")[1] + x.split("\\")[0])
Сделав некоторые предположения на основе данных, которые вы удалили изпроблема установлена - .split("\")
является неправильным синтаксисом, и «другой столбец» выше обязательно должен иметь обратную косую черту, чтобы ваш код (и мой) работал, в противном случае .split("\\")[1]
вернет ошибку.