私はpandasカラムを読み込んでそのユニークな値を辞書に書き込み、その値を整数にマッピングします。辞書に書き込むPythonは大量のデータをタイムアウトします
問題は、計算が非効率的で、完了する前に常に殺されるということです。 私は165個のそのような列と30万行以上の列を持っています。
例:
my pandas dataframe df:
A B
cat lion
dog tiger
cat tiger
my output dictionary:
dict['A'] = {'cat':1,'dog',2}
dict['B'] = {'lion':1,'tiger',2}
が働くが、完了にそれを作ることはありませんextrememly遅いコード:ターミナルで
not_num_cols = ['A','B'...]
def replace_str(col_lists):
my_dict = {}
for c in col_lists:
c_unique = df[c].unique()
my_dict[c] = dict(zip(c_unique,range(len(c_unique))))
df[c] = df[c].replace(my_dict[c])
return my_dict
my_dict = replace_str(not_num_cols)
、プログラムが自動的にいくつかの時間のために実行した後に殺されます。
このコードのメモリをより効率的にするにはどうすればよいですか?
おそらくあなたのプロセスはOOMによって殺されるでしょうか? – BlackBear