LoginSignup
0
1

More than 5 years have passed since last update.

データ加工におけるRvsPython対応表 (随時更新予定)

Last updated at Posted at 2018-02-27

RとPythonを両方使っていると、「あれ?RのこれってPythonでどうやるんだっけ?」とよくなる (逆もまた然り) ので、自分用にメモ。
ひとまず、データ加工についてまとめてみます。
気付いたら適宜追記します。

略記

x: 任意の1次元配列 (Pythonはlistとarrayがある点に注意→コメント欄で補足)
n: 任意の整数値
str: 任意の文字列
df: 任意のデータフレーム
func: 任意の関数
(上記以外にfilenameとかvarとか唐突にでてきますが、なんとなく察して下さい)

前提

Rは{tidyverse}を使用 (library(tidyverse))
Pythonはnumpy, pandasを使用 (import numpy as np; import pandas as pd)
バージョンは、執筆時点の最新版を使用

データの処理

やること R Python コメント
論理値を表現する TRUE, FALSE True, False 大文字小文字に注意
データ型を確認する `str(x) type(x)
引数の有無を確認する missing(var) var == None 関数内で使用

配列の処理

やること R Python コメント
2値化する ifelse(x>=0.5, 1, 0) np.where(x >= 0.5, 1, 0) 左記は0-1の範囲の配列を四捨五入する処理
配列の各要素を処理 sapply(x, func) [func(r) for r in x]
任意の長さの配列を作る (値は0) numeric(length = n) [0 for _ in range(n)]
またはnp.zeros(shape = n)
共通の要素を取り出す x1[x1 %in% x2] set(x1) & set(x2)
数値を0詰めしてn桁に揃える formatC(x, width = n, flag = "0") str(x).zfill(n) xは数値型. 出力は文字列型

データフレームの処理

やること R Python コメント
csvを読み込んでデータフレームにする read_csv(filename, ...) pd.read_csv(filename, ...)
配列をデータフレームにする as.data.frame(x) pd.DataFrame(x, columns = ["colname"])
データの次元数を見る dim(df) df.shape
欠損のある行を除く na.omit(df) df.dropna()
論理値の配列で抽出して、行番号を振り直す filter(df, boolean) df[boolean].reset_index(drop = True)
行番号で抽出する slice(df, x) df.ix[x]
横向きに結合する cbind(df1, df2) pd.concat([df1, df2], axis = 1) concatをaxis=0にするとRのrbindになる
列ごとに集計関数を適用する apply(df, 2, func) df.apply(func)
csvに書き出す write.csv(df, "filename.csv", ...) df.to_csv("filename.csv", ...)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1