簡體   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