Performance difference between decision trees and logistic regression when one of the features is a string
String data can be either categorical (where you have e.g. more than 10 examples of each string) or free text.  If it's the former, a decision tree can deal with it no problem. You don't have to convert it into a numeric.

For regression you cannot directly use categorical variables.    If you want to use them in a regression, you will need to create dummy variables to encode the values. e.g. if your categories are "Red", "Yellow", "Blue" for the colour variable, you create variables "Red" (which will take a 1 or a 0) and "Yellow" (which takes a 1 or 0).  If both are 0, the colour must be "Blue".  There are functions in sklearn to do this automatically. 

If your string is just free text then you will need a better way of grabbing information out of it.  You can use text mining such as tokenizing, TF-IDF etc. to convert it into numerical and categorical information that can be fed into a classifier.