Long overdue follow-up item on the initial merge of the nullable float64/float32 support (https://github.com/pandas-dev/pandas/pull/34307).

List of follow-up TODO items:

  • [x] Update the convert_dtypes method to also return nullable floats (one question here: what with floats that are all "integer"-like? I think we want to keep returning nullable int for that, but we might want to add a parameter controlling that behaviour?) -> #38117
  • [x] Arithmetic operations with IntegerArray/BooleanArray can now return a FloatingArray instead of numpy float array(eg division with Int64 should give Float64 -> #38178
  • [ ] Ufuncs on IntegerArray/BooleanArray can return FloatingArray, ufuncs on mixture of IntegerArray/FloatArray
  • [x] Consolidate some tests that are common for integer/boolean/float
  • For example the value_counts test could easily be shared and moved to masked/ (see the ones I added in https://github.com/pandas-dev/pandas/pull/38178)
  • [ ] Deduplicate more things between the Array classes and move to BaseMaskedArray (eg the arithmetic / comparison ops can probably be moved with a bit of refactoring)
  • [x] __from_arrow__ -> https://github.com/pandas-dev/pandas/pull/38411
  • [x] ufuncs -> https://github.com/pandas-dev/pandas/pull/38412
  • [ ] coerce_to_array, but this will probably require some refactoring
  • [x] Honor the formatting options (eg precision) #39336
  • [x] Fix membership test for np.nan (np.nan in arr), see https://github.com/pandas-dev/pandas/pull/37867#discussion_r531079439

And of course, we also still have the NA vs NaN discussion to further flesh out (https://github.com/pandas-dev/pandas/issues/32265), but this issue is for the direct practical TODO items.