BUG: Fixed PandasArray.__setitem__ with str
Closes https://github.com/pandas-dev/pandas/issues/28118
Closes https://github.com/pandas-dev/pandas/issues/28150
LGTM

That said, I'm just noticing that below the changed code PandasArray can change its dtype and pin a new underlying ndarray.  Does that seem sketchy to anyone else? > PandasArray can change its dtype and pin a new underlying ndarray.

I'm not too bothered by the new underlying ndarray part, since it's private. What part bothers you?

I do notice that `.astype` should probably be with `copy=False`. > I'm not too bothered by the new underlying ndarray part, since it's private. What part bothers you?

It's liable to cause surprises with view-like semantics.  e.g. I'd expect `parr[:]` or `np.asarray(parr)` to stay in sync with `parr`.  (this discussion probably belongs in a separate issue) Agreed that this can go in a followup :) Merging in a few hours. Fixed the whatsnew. Merging.