mathhunの日記

Haskellと機械学習の勉強日記。PRML読みます。

Python Pandasメモ

Rを先に覚えたので、Rだと簡単に書けるようになったもののそれと同じ事をPython(numpy+pandas)でやりたいときに良いやり方が思いつかない AND ググっても時間がかかる AND 多分すぐ忘れる。
ので特にはまったのをメモしておく。

DataFrame ある条件を満たす行の、あるカラムの値を書き換えたい

Rだと

> df <- data.frame(x=1:5, t=sample(0:1, size=5, replace=T))
> df
  x t
1 1 0
2 2 0
3 3 0
4 4 1
5 5 0

# t==0 の行だけ t=-1 にしたい

> df[df['t']==0, ]$t = -1
> df
  x  t
1 1 -1
2 2 -1
3 3 -1
4 4  1
5 5 -1

PandasのDataFrameでは

df['t'] = df.apply(lambda row: (1 if row['t']==1 else -1), axis=1)

とりあえずやりたいことはできた