问候,

抱歉,如果出现此问题与其他问题重复。但是我可以找到一个能正确解决我的问题的答案。

我将一个称为“数据”的数据帧分为多个子集,这些子集存储在名为“ dfs”的数据帧字典中,如下所示:

# Partition DF

dfs = {}
chunk = 5

for n in range((data.shape[0] // chunk + 1)):
    df_temp = data.iloc[n*chunk:(n+1)*chunk]
    df_temp = df_temp.reset_index(drop=True)
    dfs[n] = df_temp


现在,我想将预定义的帮助函数“ fun_c”应用于每个数据帧(存储在名为“ dfs”的字典对象中)。

我一次将函数应用于dfs是否正确(如下)?

result = fun_c(dfs)


如果没有,正确的方法是什么?

最佳答案

这取决于您要寻找的输出:


如果要在输出中使用字典,则应将函数应用于每个字典项


result = dict({key: fun_c(val) for key, val in dfs.items()})



如果要在输出中列出数据框/值,则将函数应用于每个dict值


result = [fun_c(val) for val in dfs.items()]


但是这种样式也不是错误的,您也可以在helper函数内部进行迭代:

def fun_c(dfs):

    result = None
    # either
    for key, val in dfs.items():
        pass
    # or
    for val in dfs.values():
        pass
    return result



让我知道是否有帮助!

关于python - Python:将函数应用于数据框的多个子集(存储在字典中),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60134460/

10-11 03:30
查看更多