We are using Python.Net to call CLR Code from Python and vice vera. It works rather well, but has some drawbacks, mainly that writing CLR code in Python is ...weird (this also applies to the other way).
So we are mostly using it as an interface: Have high level methods which can be called and which return defined data structures - we try to avoid to create a complete python program in C#-code. This has also adavantages in regard to testabillity.
Note that Python.Net is only slowly updated, which can be a problem if you want to use the newest and hottest python release. On ther other hand: you can use ALL of python, not just the IronPython subset.
A last word of warning: If you are calling CLR Code from Python try to avoid to pass CLR objects deeper into you python program - while Python.Net is good ad abstracting away some differences, other differences will come around to bite you, like trying to pickle/unpickle an CLR object. We found thst writing some conversion code really helps to mitigate such problems.
Warning 2: There are some .Net exceptions which can bring your python process down. If you observe myterious shutdowns, take a look at the global .Net exception handler. This isn't the fault of either python or clr - just that both have somewhat different ideas of how some thinks should be handled.
Last but not least: In terms of data science, F# is really good and has some interesting libraries like http://bluemountaincapital.github.io/Deedle/