将函数应用于多个dataframe列

2024-03-28 13:48:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,有一列(R)和30列(i1:130)。你知道吗

我编写了一个函数,调用'R'和'i1'作为x\u数据和y\u数据,如下所示:

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's as y\u data,但使用与x\u data相同的'R'来运行它呢


Tags: csv数据函数dataindexareafindstart
1条回答
网友
1楼 · 发布于 2024-03-28 13:48:38

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

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

相关问题 更多 >