こんにちは、ミナピピン(@python_mllover)です
今回はpandasのデータフレームの中身をfor文で1行ずつ置換する方法について紹介したいと思います。
データフレームの中身をfor文で1行ずつ置換する
import pandas as pd import numpy as np matrix = np.random.randn(6,4) df = pd.DataFrame(matrix, columns=list('ABCD')) # 3列目の要素を全て0に置換する for i, row in enumerate(df.itertuples()): df.iloc[i, 2] = 0 df
他にもreplaceやapply使う方法もあります。ただたまに無名関数を使って処理するとうまく処理できないこととかがあるのでそういうときにはこれでゴリ押すイメージです。
ちなみにfor i in range(len(df):~みたいな感じでデータフレームの長さを使ってインデックス呼び出しで一個一個データをコピーして処理すると、数万行とかのデータフレームの場合、メモリがオーバーフローするのでdf.itertuples()で回しましょう。
参考記事:
<参考書籍>
コメント