我有一个带有一列(R)和30列(I 1:1 30)的csv文件。
我写了一个叫做' R'和' I 1'如下x_data和y_data:
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个不同的我作为y_data运行,但使用相同的&#39; R&#39;作为x_data
答案 0 :(得分:2)
您可以将x_data
和y_data
作为函数的参数,然后从1到30循环,将函数应用于每个I <num
列&gt;。示例 -
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