私はいくつかのデータ分析を行っており、そのデータはパンダDataFrame
、df
です。Python&Pandas:多くのdf.copyを使用するとコードのパフォーマンスに影響しますか?
df
で処理するために定義した機能がいくつかあります。封入ため
、私はこのような関数を定義:Jupyterノートで
def df_process(df):
df=df.copy()
# do some process work on df
return df
を、Iは
df = df_process(df)
としての機能を使用df.copy()
を使用する理由は、そうでなければ、元のdf
であろうことですそれを割り当てるかどうかにかかわらず、変更することができます。
はここに適切な
df=df.copy()
を使用している?私の質問がある(Python & Pandas: How to return a copy of a dataframe?を参照してください)そうでない場合、関数はデータをどのように定義する必要がありますか?
このようなデータ処理機能をいくつか使用しているため、プログラムのパフォーマンスに影響しますか?それと、いくらですか? 、あなたはコピーを作成する必要がある場合は、ここでキーがある
def df_process(df): # do some process work on df def df_another(df): # other processing def df_more(df): # yet more processing def process_many(df): for frame_function in (df_process, df_another, df_more): df_copy = df.copy() frame_function(df_copy) # emit the results to a file or screen or whatever
一つだけを作り、プロセスには、どこかの結果を隠しておくと、その後
df_copy
を再割り当てすることによって、それを処分:
メモリを増やすと、実行時間が長くなることがよくあります。どれくらい?それを測る。 – msw
元のdfを元に戻すかどうかにかかわらず*なぜ変更されますか?リンクされた質問では、元のdfに新しい列を追加しています.HYRYの答えは、それを回避する方法を示しています。 – ayhan