Python Pro Tip: Want to use R/Java/C or Any Language in Python?

Python Pro Tip: Want to use R/Java/C or Any Language in Python?

<br>

Python provides a basic and simple way to handle such requirements where we have to switch to and fro between multiple languages

Python is great. Really great.

But the field is getting/will get language agnostic with time. And a lot of great work is being done in many other languages.

While I still treat Python as a primary language, I never hesitate to move to a different language if it gets the work done.

The fact is that every language has evolved in such a way that it has built its stronghold in certain areas. For example, *Some people may find it easier to use R for regression, or Plot in R using ggplot(Though I sincerely feel Python has come a long way in the *visualization* department.)*

Sometimes it is because a particular library is written in Java/C and someone hasn’t yet ported it to Python.

But is there a better way to handle this constant nuisance?

I like Python because I understand it well now. It is easy for me to do so many things in Python as compared to doing it in R or Java or Scala.

Why do I have to code my data preparation steps in R if I just want to use the Linear Regression package in R?

Or why do I have to learn to create charts in Java if I only want to use the Stacknet package?

Now Python and R have many wrappers. How can I use R in Python or How I can use Python in R? rpy2 and reticulate

These packages are all well and good, and they may solve some problems.* But they don’t address the generic problem. Every time I want to switch from one language to another I need to learn a whole new package/library. Not scalable at all.*

In this series of posts named Python Shorts, I will explain some simple constructs provided by Python, some essential tips and some use cases I come up with regularly in my Data Science work.

This post is about utilizing a particular package/library from another language, while not leaving the comfort of coding in our primary language.

The Problem Statement

I will start with a problem statement to explain this. Let’s say I had to create a graph using R, but I wanted to prepare my data in Python.

It is a generic problem any data scientist can potentially face. Do something in one language and then move to another language to do some other thing.

Can I do this without leaving my Jupyter notebook? Or my Python Script?

The Solution

Here is how I could accomplish this. It might seem hacky to some but I love hacks.

import pandas as pd
data=pd.read_csv("data.csv")
data = preprocess(data)
data.to_csv("data.csv",index=None)
os.system("Rscript create_visualization.R")

*The *<strong><em>os.system</em></strong>* command provides me with a way to access my shell using Python*. And the shell is a potent tool at your disposal. You can run almost any language on the shell.

The corresponding Rscript that will run in python would look something like:

data<-read.table("data.csv")
ggplot(...)
ggsave("plot.png")

I can then maybe load the png file and show it in my Jupyter notebook using something like a markdown hack.

![alt text](plot.png "Title")

For R users, who don’t want to leave the comfort of R, R also has a systemcommand analogous to os.system that you can use to run Python code in R.

Conclusion

<strong><em>os.system</em></strong>* in Python provides us a way to do each and everything in Python by letting us call shell commands from Python.*

I have used it in plenty of my projects where I have used this concept to send e-mails using Mutt. Or to run some Java program or to fiddle around.

It seems like a hacky way, but it works and is generalized enough that you don’t have to learn a new library anytime you want to do something with any other language and get it integrated with Python.

Angular 9 Tutorial: Learn to Build a CRUD Angular App Quickly

What's new in Bootstrap 5 and when Bootstrap 5 release date?

Brave, Chrome, Firefox, Opera or Edge: Which is Better and Faster?

How to Build Progressive Web Apps (PWA) using Angular 9

What is new features in Javascript ES2020 ECMAScript 2020

Top Python Development Companies | Hire Python Developers

After analyzing clients and market requirements, TopDevelopers has come up with the list of the best Python service providers. These top-rated Python developers are widely appreciated for their professionalism in handling diverse projects. When...

Python GUI Programming Projects using Tkinter and Python 3

Python GUI Programming Projects using Tkinter and Python 3

Guide to Python Programming Language

Guide to Python Programming Language