Deep Karmaning

技術系の話から日常のことまで色々と書きます

RとPythonのデータフレーム操作の対応 #1

概要

普段データ分析ではRを使っているのですが、今後はPythonも使いっていきたいと思います。

そこでRでよく使うデータフレーム操作と、Pythonの操作の対応を自分が使う範囲の用途ですが調べてみました。

参考したのは以下。

https://assets.datacamp.com/blog_assets/PandasPythonForDataScience.pdf

環境

環境は以下の通り。

  • Mac 10.10.5
  • Python 3.5.4
  • Jupyter 4.3.0
  • pandas 0.20.3
  • R 3.2.4
  • tidyverse 1.1.1

データフレーム操作

事前準備

今回操作するデモ用のデータは以下です。

これを適当なフォルダにダウンロードして保存して下さい。

github.com

必要なライブラリ読み込み

Rはtidyverseを使います。

library(tidyverse)

Pythonはpandasを使います。

import pandas as pd

CSV読み込み

R

df <- read.csv("input/iris.csv")

Python

df = pd.read_csv("input/iris.csv", header = 0)

CSV書き出し

R

write.csv(df, "r_iris.csv", row.names = FALSE) #行名は出さない

Python

df.to_csv("python_iris.csv", index = False) #行名は出さない

データフレームの上位下位確認

R

head(df) #上から5行確認
tail(df) #下から5行確認

Python

df.head() #上から5行確認
df.tail() #下から5行確認

主要統計量確認

R

summary(df)

Python

df.describe()

変数名の確認

R

names(df)

Python

df.columns

列取り出し

R

df[, 1] #インデックスを使った取り出し
df[, "SepalLength"] #変数名を使った取り出し
df$SepalLength #$と変数名を使った取り出し
df %>% select(SepalLength) #dplyrを利用した取り出し

Python

df.iloc[:, 0] #インデックスを使った取り出し
df["SepalLength"] #変数名を使った取り出し
df.ix[:,'SepalLength']  #ixと変数名を使った取り出し

行取り出し

R

df[1,]

Python

df.iloc[0, :]
df.ix[0]

まとめ

前処理方法等はまだ対応を確認しきれていないので、引き続き確認していきます。