Dude, everyone who's good had to get **** on over and over to get there. That's fighting games. That's any competitive endeavour. That's life for the most part.
You have to accept that you're going to suck. You also have to enjoy the experience of playing regardless of whether or not you win. Unless you're in tournament, Melee is never about winning (and even then it shouldn't be your only focus). Like, you know you're improving, so don't get mad at yourself because you're not suddenly Mew2King. Also keep in mind that every top player has practiced like, an order of magnitude more than you, at the very least, and has practiced way more effectively too. That applies to the relatively low-level player beating you too to a lesser extent.
That's the general concept. But part of the reason you could be feeling so frustrated at losing is that you don't feel it's productive. It is productive though; when you lose, it's an opportunity to learn. Getting bodied is great! It shows you that it's possible to be as good as the person who bodied you (if someone else can do it then you can too), and it's basically like getting handed a list of everything you need to do to improve (and like, you can straight up ask the player bodying you for advice too). That should be fulfilling and exciting. If you feel like you're stagnating playing CPUs and want to play people, then why are you upset when you're playing people and clearly being given so much of value? You're there to improve more (knowing that you're far from good enough and need more practice), not show yourself how much you've already improved, right?
There will still be a lot of times where you feel you're not making any progress despite trying your best and having in mind what you should be doing, but that's on you. You have all the resources you need, and you just need to figure out how to use them. Video analysis is super helpful for that.
You also probably have to change the way you're thinking about practicing. Playing CPUs, you do combos and stuff over and over again. You learn set plays, and you grind. When playing a person, sure you practice executing those, but you have so much more you have to do. You have to watch for how the opponent is beating you and what their weaknesses are, and then adapt to that, which isn't a skill that's tested against CPUs (not in the same way at least). I mean you also just have to learn how to DI and stuff, because you don't get to practice that on your own. You can't just try to do the stuff you do against CPUs and then get upset when it doesn't work and stop there. I don't want to be too presumptuous but I'm guessing that's what's happening, and it's worth considering anyway just to make sure (and because analysing how you think about this stuff is valuable anyway).
Don't be ashamed of being bad. Everyone is bad by the standards of the top players, and everyone is bad for a long time on their journey to getting good. It's hard to have your ego challenged; no one likes feeling proud of themselves for being good at something and then finding out they're not as good as they thought. I struggle with that. You absolutely can have an ego; it's important to feel proud of yourself. You just have to keep it under control and not let it give you unrealistic expectations. Your ego just wants you to feel good about yourself; it's not really concerned with actually achieving it. You need to put in the work to justify your inflated ego, you know? That's how I like to look at it, anyway. There are other ways to look at it but they all basically come down to "be realistic but still aspire highly".
There is lots more you can do against CPUs too; they're always valuable. More so when they're 20XX ones which DI and tech properly (get that right away if you don't have it). That applies to solo practice in general; there's so much more that you can grind out by yourself than you already have, trust me. The obvious but extremely important example would be being able to consistently chaingrab a 20XX spacie 0 to death on FD (you can't do a true 0 to death every time depending on how they DI, but you should not be outright dropping anything, and the entire time between where they can ambiguously slight DI the throw at low percent and where they can start SDIing your up airs and forcing mixups after like 50% you should be covering everything on reaction. Then you should be getting more damage and either hitting them offstage, or putting them in a mixup that potentially kills them or at least potentially puts them in a particularly strong edgeguard. And of course if they don't do those things to get out you should be able to cover everything).