Disclaimer: I am an active R user who once wrote a lifetime worth of Python in finance.
First, I am with you: R's syntax is idiosyncratic and rather horrible in places. Python is much easier on the eyes and more consistent syntactically. Also, dealing with strings is confusing at best in R and piece of cake in Python.
That said, R's semantics is pretty powerful, and ggplot2/dplyr (or any R library by Hadley Wickham) takes full advantage of R's expressiveness. The ">%>" operator is surely ugly, but as far as I know (happy to be proven wrong), that kind of operator is not even implementable in Python.
A similar idea in other languages is method-chaining, which is what pandas does to implement something similar.
I personally like "%>%" better than method-chaining, probably because I think more functionally than OOP. But I now feel like I am opening a different can of worms.
I am with you there, piping is a very powerful operation and makes more sense from a purely functional perspective.
Method chaining isn't too terrible, but it also means those functions need to be attached to the object, which makes it rigid to reusably extend if you aren't the author. Maybe we should petition the python community for piping :).
The even more ugly option would be function nesting a(b(c(data))), which feels like reading reverse polish notation..
I use Python whenever I can. But honestly, R is still better when it comes to exploratory data analysis.
Some advice: R is digestible (and sometimes elegant) if you only read it line by line. Just try to look at an entire file R file as little as possible or your eyes will melt.
Pandas is great if you have a background in object-oriented programming! If you don't, it has been known to make R-users who don't have a background in computer science very angry.