0
私はパンダのデータフレームに問題があります。 Pandas/Pythonは元のDFの修正を行うのではなく、コードのどこかにDFのコピーを生成するようです。パンダ - インプレース、ビュー、コピーの混乱
以下のコードでは、 "update_df"は、以前の機能で削除されたはずの "file_exists"列のDFを引き続き表示します。
MAIN:
if __name__ == '__main__':
df_main = load_df()
clean_df2(df_main)
update_df(df_main, image_path_main)
.....
clean_df2
def clean_df2(df): #remove non-existing files from DF
df['file_exists'] = True # add column, set all to True?
.....
df = df[df['file_exists'] != False] #Keep only records that exist
df.drop('file_exists', 1, inplace=True) # delete the temporary column
df.reset_index(drop=True, inplace = True) # reindex if source has gaps
update_df:あなたが行うとき
def update_df(df, image_path): #add DF rows for files not yet in DF
print(df)
....
いっそ 'に行を変更します。
そして、あなたはclean_df2(DF)を呼び出すときに、次の手順を実行しますdf.drop(df ['file_exits']!= False、inplace = True) ' –
これは別のオプションです。関数内で簡単にコピーを作成できます。最終的なdfを返すことはおそらくより安全な選択肢です。 – Allen
私は、メモリの理由からデータフレームをコピーしないようにしたいと思うことがあります。 –