5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pandasでよく使うコードをまとめてみた

Posted at

kaggleを始めてデータサイエンスに触れる機会が増えてきたため、pythonを使う私は必然的にpandasを用いてデータの処理をすることになりました。
今回は個人的によく使うコードをまとめています。ほぼ自分用のメモになりますが、誰かのお役に立つこともあるだろうかと思いqiitaにまとめて投稿することにしました。
他にもっと良い記法があるなど、何かしらのアドバイスや感想がございましたらコメントで教えていただけると幸いです。また、汎用的なコードはあれば随時更新していきたいと思います。

DataFrame

データの作り方。特にどれが良いということは無いですが、2通りで同じデータを作ります。自分がやりやすい方を場合によって使い分けてください。出力は同じです。

method 1

index = ['a','b','c']
columns = ['A','B','C']
inputs = [[1,2,1],[3,4,3],[5,6,5]]
df = pd.DataFrame(columns = columns,index = index)
for i,columns in enumerate(columns):
    df[columns] = inputs[i]
df
A B C
a 1 3 5
b 2 4 6
c 1 3 5

method 2

index = ['a','b','c']
df = pd.DataFrame({
    'A':[1,2,1],
    'B':[3,4,3],
    'C':[5,6,5]},
    index=index)
df
A B C
a 1 3 5
b 2 4 6
c 1 3 5

今回はindexといして適当なアルファベット(a,b,c)を入れていますが、indexを指定しなければ0から数字を割り振ってくれます。

Feature Encoding

特徴量の変換に関していくつかまとめ。

One-Hot Encoding

データをいじっているとonehot vectorに変換したくなる場面は少なく無いと思います。sklearnのOne-Hot Encodingを用いることもできますが、pandasでデータを管理しているのであればget_dummesを使う方が効率がいいと思います。

pd.get_dummies(df['A'])
1 2
a 1 0
b 0 1
c 1 0

Frequency Encoding

これは完全に個人的なコードです。また使うこともあるだろうと思ったのでメモしておきます。処理としては,値を出現回数のラベルに変換して返すというものです。

df.groupby('B')[['B']].transform('count')
B
a 2
b 1
c 2

Bのcolumnsで3が出現する回数が2回,4が出現する回数が1回ということですね。

まだ全然まとめ切れていないのですが、ひとまずこれにて。またコードを追加していこうと思います。

5
9
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
5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?