Pandasの参照先が変わるタイミング
よくわからんので、とりあえずメモ
以下
import pandas as pd def hoge(x): x.iloc[1] = 100 df = pd.DataFrame({'A': range(3)}) hoge(df) df
を実行すると
A 0 0 1 100 2 2
となるので、hoge関数にはdfのポインタ(参照)が渡されているのがわかる、これはいい。
一方、以下
def hoge2(x): x = pd.DataFrame.from_items([('A', [1])]) df = pd.DataFrame({'A': range(3)}) hoge2(df) df
を実行すると
A 0 0 1 1 2 2
となり、元の変数(df)がそのまま出てくる。
従って、関数内でdfが指しているデータを変更するような操作はない。