It is obvious that transaction fees drastically dropped because there are less transaction that is happening per day, less transaction means there will be no congestion of unconfirmed transactions and less congestion means transaction fees will be cheaper. About segwit, when it was released only few people are talking about it and only few services immediately supported it, but when transaction fees became more expensive last year that is the time that people are switching from legacy to segwit address, personally I think that segwit is also one of the reason why transaction fees are now cheaper, because more Bitcoin investors and traders are adopting it.
The reasons for the low fees were discussed over and over again, one of such threads is this:
https://bitcointalk.org/index.php?topic=3177944.msg32898063#msg32898063Shortly, the main culprit for the big fees seems to be the spam attack that was done against Bitcoin network last year.
This being said, a good advice is to keep the funds in SegWit wallets and keep small number of inputs, since the spam attack and the big fees can come back in the day we expect them the least.