我有一个包含一栏(R)和30栏(I 1:1 30)的csv文件。

我编写了一个函数,将其作为x_data和y_data调用“ R”和“ I 1”,如下所示:

df1 = pd.DataFrame.from_csv(filepath, index_col = None)

x_data = df1['R']
y_data = df1['I 1']

def find_peaks(grad):
    peaks=[]
    i = 0
    while i < len(grad[:-1]):
        if grad[i] > 0:
            start = i
            peak_index = find_peak(start, grad)
            end = find_end(peak_index, grad)
            area = np.trapz(y_data[start:end], x_data[start:end])
            peaks.append((x_data[peak_index], y_data[peak_index], area))
            i = end - 1
        else:
            i+=1
    return peaks


此函数查找峰并返回其峰面积。

我如何针对30个不同的'I'作为y_data但与'x_data相同的'R'运行

最佳答案

您可以将x_datay_data作为函数的参数,然后从1到30循环,将函数应用于每个I <num column>。范例-

df1 = pd.DataFrame.from_csv(filepath, index_col = None)

def find_peaks(grad, x_data, y_data):
    ...
    ...

for i in range(1,31):
    result = find_peaks(grad,df1['R'], df1['I {}'.format(i)])
    #Do whatever you want with the result

10-04 20:44