Setup
library(reticulate)
use_python("/usr/local/bin/python")
readr::write_csv(nycflights13::flights,path = "flights.csv")
From Python to R
Use Python to manipulate data
import pandas
flights = pandas.read_csv("flights.csv")
flights = flights[flights['dest'] == "ORD"]
flights = flights[['carrier', 'dep_delay', 'arr_delay']]
flights = flights.dropna()
Use R to visualize Pandas DataFrame
library(ggplot2)
ggplot(py$flights, aes(carrier, arr_delay)) + geom_point() + geom_jitter()
From R to Python
Use R to read and manipulate data
library(tidyverse)
flights <- read_csv("flights.csv") %>%
filter(dest == "ORD") %>%
select(carrier, dep_delay, arr_delay) %>%
na.omit()
Use Python to print R dataframe
print r.flights.head(10)
carrier dep_delay arr_delay
0 UA -4.0 12.0
1 AA -2.0 8.0
2 MQ 8.0 32.0
3 AA -1.0 14.0
4 AA -4.0 4.0
5 UA 9.0 20.0
6 UA 2.0 21.0
7 AA -6.0 -12.0
8 MQ 39.0 49.0
9 B6 -2.0 15.0
See the reticulate website for details.
LS0tCnRpdGxlOiAiVGhlIHJldGljdWxhdGUgcGFja2FnZSIKc3VidGl0bGU6ICJJbnRlZ3JhdGlvbiBvZiBQeXRob24gaW50byBSIHByb2plY3RzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoqKioKCiMjIyBTZXR1cAoKYGBge3Igc2V0dXB9CmxpYnJhcnkocmV0aWN1bGF0ZSkKdXNlX3B5dGhvbigiL3Vzci9sb2NhbC9iaW4vcHl0aG9uIikKcmVhZHI6OndyaXRlX2NzdihueWNmbGlnaHRzMTM6OmZsaWdodHMscGF0aCA9ICJmbGlnaHRzLmNzdiIpCmBgYAoKKioqCgojIEZyb20gUHl0aG9uIHRvIFIKCgojIyMgVXNlIFB5dGhvbiB0byBtYW5pcHVsYXRlIGRhdGEKCmBgYHtweXRob259CmltcG9ydCBwYW5kYXMKZmxpZ2h0cyA9IHBhbmRhcy5yZWFkX2NzdigiZmxpZ2h0cy5jc3YiKQpmbGlnaHRzID0gZmxpZ2h0c1tmbGlnaHRzWydkZXN0J10gPT0gIk9SRCJdCmZsaWdodHMgPSBmbGlnaHRzW1snY2FycmllcicsICdkZXBfZGVsYXknLCAnYXJyX2RlbGF5J11dCmZsaWdodHMgPSBmbGlnaHRzLmRyb3BuYSgpCmBgYAoKIyMjIFVzZSBSIHRvIHZpc3VhbGl6ZSBQYW5kYXMgRGF0YUZyYW1lCgpgYGB7ciwgZmlnLndpZHRoPTcsIGZpZy5oZWlnaHQ9M30KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QocHkkZmxpZ2h0cywgYWVzKGNhcnJpZXIsIGFycl9kZWxheSkpICsgZ2VvbV9wb2ludCgpICsgZ2VvbV9qaXR0ZXIoKQpgYGAKCioqKgoKIyBGcm9tIFIgdG8gUHl0aG9uCgojIyMgVXNlIFIgdG8gcmVhZCBhbmQgbWFuaXB1bGF0ZSBkYXRhCgpgYGB7ciwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeSh0aWR5dmVyc2UpCmZsaWdodHMgPC0gcmVhZF9jc3YoImZsaWdodHMuY3N2IikgJT4lCiAgZmlsdGVyKGRlc3QgPT0gIk9SRCIpICU+JQogIHNlbGVjdChjYXJyaWVyLCBkZXBfZGVsYXksIGFycl9kZWxheSkgJT4lCiAgbmEub21pdCgpCmBgYAoKIyMjIFVzZSBQeXRob24gdG8gcHJpbnQgUiBkYXRhZnJhbWUKCmBgYHtweXRob259CnByaW50IHIuZmxpZ2h0cy5oZWFkKDEwKQpgYGAKCioqKgoKU2VlIHRoZSBbcmV0aWN1bGF0ZSB3ZWJzaXRlXShodHRwczovL3JzdHVkaW8uZ2l0aHViLmlvL3JldGljdWxhdGUvaW5kZXguaHRtbCkgZm9yIGRldGFpbHMuCgo=