'How to create converters for pandas?

I want to read in a CSV file with pandas. Two columns are to be multiplied by a different constant each.

params = {
    "table-columns": ['A', 'B'],
    "multiplicands": ['0.001', '0.000001']
}

converters_ = {}
for i in range(0,len(params['table-columns'])):
    column = params['table-columns'][i]
    multiplicand = params['multiplicands'][i]
    display(column + '/' + multiplicand)
    func = lambda x: float(x) * float(multiplicand)
    converters_[column] = func
display(converters_['A'](1)) # should be 1e-03
display(converters_['B'](1)) # should be 1e-06

#df = pd.read_csv('data.csv', converters=converters_)

This is the output:

'A/0.001'
'B/0.000001'
1e-06
1e-06

Column A should be multiplied by 0.001, but it is multiplied by 0.000001. Where is the bug here?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source