すべてのセルにいくつかの値を保持するcsvファイルを読み取ろうとしていますが、それらを単一のint形式のバイトにエンコードしてパンダセルに格納します(例:(1、1)-> 771)。そのために、関数のコンバーターパラメーターを使用したいと思いread_csv
ます。問題は、事前に列の名前がわからないことです。コンバーターに渡される値は、列名をキーとして持つdictである必要があります。実際、同じコンバーター機能ですべての列を変換したいと思います。そのためには、次のように書く方がよいでしょう。
read_csv(fhand, converter=my_endocing_function)
よりも:
read_csv(fhand, converters={'col1':my_endocing_function,
'col2':my_endocing_function,
'col3':my_endocing_function,})
そのようなことは可能ですか?今私がしている問題を解決するために:
dataframe = read_csv(fhand)
enc_func = numpy.vectorize(encoder.encode_genotype)
dataframe = dataframe.apply(enc_func, axis=1)
しかし、このアプローチは効率が悪いかもしれないと思います。ちなみに、to_stringメソッドで使用されるフォーマッターについても同様の疑問があります。