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.