繁体   English   中英

如何在 Python 中的 DataFrame 列表上快速应用函数?

[英]How to apply a function fastly on the list of DataFrame in Python?

我有一个列和行长度相等但值不同的 DataFrame 列表,例如 data = [df1, df2,df3.... dfn] 。 如何在列表数据中的每个数据帧上应用函数函数? 我使用了以下代码但它不起作用

data = [df1, def2,df3.... dfn]
    def maxloc(data):

        data['loc_max'] = np.zeros(len(data)) 

        for i in range(1,len(data)-1):  #from the second value on
            if data['q_value'][i] >= data['q_value'][i-1] and data['q_value'][i] >= data['q_value'][i+1]:
                data['loc_max'][i] = 1
        return data
    df_list = [df.pipe(maxloc) for df in data]

在我看来,问题出在您的 maxloc() 函数中,因为此代码有效。 我还添加了 maxloc 返回的最大值。

from random import randrange
import pandas as pd


def maxloc(data_frame):
    max_index = data_frame['Value'].idxmax(0)
    maximum = data_frame['Value'][max_index]
    return max_index, maximum


# create test list of data-frames
data = []
for i in range(5):
    temp = []
    for j in range(10):
        temp.append(randrange(100))
    df = pd.DataFrame({'Value': temp}, index=(range(10)))
data.append(df)


df_list = [df.pipe(maxloc) for df in data]

for i, (index, value) in enumerate(df_list):
    print(f"Data-frame {i:02d}: maximum = {value} at position {index}")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM