相关疑难解决方法(0)

将解决方案应用于实际数据时的结果不正确

我试图将此问题中提供的解决方案应用于我的实际数据:在MultiIndexed数据帧中选择行.不知怎的,我无法得到应该给出的结果.我已经附加了数据框以供选择,以及结果.

我需要的;

应返回第3行,第11行和第12行(当您连续添加4列时,也应选择12列.现在不是.)

    df_test = pd.read_csv('df_test.csv')

    def find_window(df):
        v = df.values
        s = np.vstack([np.zeros((1, v.shape[1])), v.cumsum(0)])

        threshold = 0

        r, c = np.triu_indices(s.shape[0], 1)
        d = (c - r)[:, None]
        e = s[c] - s[r]
        mask = (e / d < threshold).all(1)
        rng = np.arange(mask.shape[0])

        if mask.any():
            idx = rng[mask][d[mask].argmax()]

            i0, i1 = r[idx], c[idx]
            return pd.DataFrame(
                v[i0:i1],
                df.loc[df.name].index[i0:i1],
                df.columns
            )

    cols = ['2012', '2013', '2014', '2015']

    df_test.groupby(level=0)[cols].apply(find_window)
Run Code Online (Sandbox Code Playgroud)

csv_file位于:https://docs.google.com/spreadsheets/d/19oOoBdAs3xRBWq6HReizlqrkWoQR2159nk8GWoR_4-g/edit?usp = sharing

编辑:添加了正确的数据帧. 在此输入图像描述

在此输入图像描述

注意:蓝框=应返回的行,黄框是连续的列值<0(阈值).

numpy dataframe pandas

9
推荐指数
1
解决办法
538
查看次数

标签 统计

dataframe ×1

numpy ×1

pandas ×1