I'd recommend dataclasses over namedtuples. In almost every case the "iterability" of a namedtuple ends up not being necessary (and can be a footgun!) what you really want is a lightweight namespace with types i.e. dataclasses!
On the other hand, the immutability of a named tuple can be useful.
You can set frozen=True to make a dataclass immutable.