TST: avoid chained assignment in tests outside of specific tests on chaining
Similarly as https://github.com/pandas-dev/pandas/pull/46980, now splitting off a part of the test changes in https://github.com/pandas-dev/pandas/pull/49467 that can be done separately

We have specific tests about chained indexing (in `pandas/tests/indexing`, eg `test_chaining_and_caching.py`), so outside those specific indexing tests, I can think we can avoid using chained indexing (regardless of the new CoW implementation, this would follow our own recommendation on best indexing practices, although it also shows that some cases of mixed positional/label based setting is somewhat convoluted ..)
There are in general two ways to avoid chained assignment if you have mixed label / positional based indexing. Considering the example of `frame["A"][:10]` (where `frame` has a non-integer index, so `:10` is positional), you can use either `loc` or `iloc` instead:

```
frame.loc[: frame.index[9], "A"] = ...
# or
frame.iloc[:10, frame.columns.get_loc("A")]
```

Do we have a preference for which to use in general? 
I started using the first, but this becomes inconvenient when slicing (label based is inclusive, so you need to decrement the slice start/stop for getting the equivalent index label; although for many tests this wouldn't actually matter for what is being tested). So later on I switched to `iloc` seeing this is a bit easier in that case. I can update the PR to more consistently use one of both methods. Great to clean these up!

> Do we have a preference for which to use in general?

Personally I like the `iloc` version as it's one less mental step for me to convert a label to position to see what's being sliced or selected @phofl mentioned another alternative: `frame.loc[frame.index[:10], "A"]`. This is less efficient (the slices gets converted into a list-like indexer), but for tests that doesn't matter and readability counts more.  Thanks @jorisvandenbossche (yeah the `.loc[frame.index...]` looks good as well)