0
Pythonについての私の理解によれば、データへの変更可能な参照は、関数スコープ内で変更され、変更が外部に反映されます。ただし、以下の行動は私を混乱させる:dataframe appendが関数スコープ外に表示されない
1)リストを考えてみましょう:
my_list = []
def checklistappend(list):
list.append(1)
checklistappend(my_list)
print (my_list)
変数my_listというは= [1]
2)しかし、データフレームで次のシナリオを検討してください期待通り:
をmy_df = pd.DataFrame(columns=['A'])
def checkdfappend (df):
df.append([1])
checkdfappend(my_df)
print(my_df)
この場合、my_dfの結果はまだ非直感的な列 'A'を持つ空のデータフレームであり、私が考えることができる唯一の説明はtです彼はデータフレーム追加メソッドは、私が期待しない動作である新しい変数に内部的に割り当てます。
私はpython 2.7.2 with pandas 0.13.1を使用していますが、いずれかが私のコントロールに含まれていません。
非常に多くのコピーを作成せずに同じ目的を達成する別の方法はありますか?
愚かな質問かもしれませんが、機能を試してみましたか?私はmy_df direcltyに適用することを意味します –
[append](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html)はインプレース操作ではありません。新しいデータフレームを返します。実際にはオブジェクトを変更していません。 – ayhan