5

我正在尝试读取在每个单元格中保存多个值的 csv 文件,并且我想将它们编码为单个 int 格式的字节以存储在 pandas 单元格中(例如 (1, 1) -> 771)。为此,我想使用该read_csv函数的转换器参数。问题是我事先不知道列的名称,并且要传递给转换器的值应该是一个以列名作为键的字典。事实上,我想用相同的转换器函数转换所有列。为此,最好写:

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 方法使用的格式化程序有类似的疑问。

4

1 回答 1

3

您可以传递整数 (0, 1, 2) 而不是名称。从文档字符串:

converters : dict. optional
    Dict of functions for converting values in certain columns. Keys can either
    be integers or column labels
于 2012-03-07T20:04:31.107 回答