【问题标题】:How to apply a function fastly on the list of DataFrame in Python?如何在 Python 中的 DataFrame 列表中快速应用函数?
【发布时间】:2020-07-14 10:36:36
【问题描述】:

我有一个列和行长度相等但值不同的 DataFrame 列表,例如 数据 = [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]

【问题讨论】:

    标签: python-3.x pandas python-2.7 scipy pandas-groupby


    【解决方案1】:

    在我看来,问题出在您的 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}")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 2022-09-27
      • 2020-07-18
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 2012-10-01
      相关资源
      最近更新 更多