我正在尝试读取一个csv文件,该文件在每个单元格中都包含多个值,我想将它们编码为一个int格式的字节,存储在panda单元格中(例如(1,1)->771)。为此,我想使用read_csv
函数的converters参数。问题是,我之前不知道列的名称,要传递给转换器的值应该是一个以列名为键的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方法使用的格式化程序也有类似的疑问。
您可以传递整数(0,1,2)而不是名称。从文档字符串:
converters : dict. optional
Dict of functions for converting values in certain columns. Keys can either
be integers or column labels