With a free account, you can't set up a website on a custom domain on PythonAnywhere -- though you could configure a redirect with your domain registrar so that when someone goes to
sub.xyz.com, they are redirected to
abc.pythonanywhere.com. The URL in the browser's address bar would change, but if that's OK for you then that's something that would work in a free account.
If you don't want the URL in the address bar to change, then you would need to upgrade to a paid account -- then you can set up a website on a custom domain, and then set up a CNAME record with your registrar so that your subdomain is pointed at our servers. See this help page for more details.