Я пытаюсь интегрировать функцию с pandas и scipy наиболее элегантным способом, но при выполнении получаю следующую ошибку:
TypeError: объект 'float' не подлежит подписке
Это предварительный просмотр набора данных:
0 1 Live time: 11646
0 1.0 2.0 0.0 0.0 0.0
1 2.0 3.0 0.0 0.0 0.0
2 3.0 4.0 0.0 0.0 0.0
3 4.0 5.0 1.0 0.0 0.0
4 5.0 6.0 2.0 0.0 0.0
... ... ... ... ... ...
4094 4095.0 4096.0 4092.0 1.0 0.0
4095 4096.0 4097.0 4093.0 0.0 0.0
4096 4097.0 4098.0 4094.0 1.0 0.0
4097 4098.0 4099.0 4095.0 2.0 0.0
4098 4099.0 4100.0 4096.0 0.0 0.0
Я знаю, что есть другие способы решения проблемы, но я хотел бы сохранить лямбда-функцию, потому что она упрощает работу. .
Код:
import pandas as pd
import pylab as plt
import numpy as np
from scipy.integrate import quad
dados = pd.read_csv('data.csv', sep=',| |\t|\s+', engine='python')
dados = dados.apply(pd.to_numeric,errors='coerce').fillna(0).astype('float')
def func(x):
return x[3]/x[3].max()
dados['I'] = dados.apply(lambda x: quad(func, 140.0, 4000.0), axis=1)