def clean_ftime(ftime, cut_percent=0.25):
    '\n    ftime 是完成问卷的秒数\n    思路：\n    1、只考虑截断问卷完成时间较小的样本\n    2、找到完成时间变化的拐点，即需要截断的时间点\n    返回：r\n    建议截断<r的样本\n    '
    t_min = int(ftime.min())
    t_cut = int(ftime.quantile(cut_percent))
    x = np.array(range(t_min, t_cut))
    y = np.array([len(ftime[(ftime <= i)]) for i in range(t_min, t_cut)])
    z1 = np.polyfit(x, y, 4)
    z2 = np.polyder(z1, 2)
    r = np.roots(np.polyder(z2, 1))
    r = int(r[0])
    return r
ftime 是完成问卷的秒数
思路：
1、只考虑截断问卷完成时间较小的样本
2、找到完成时间变化的拐点，即需要截断的时间点
返回：r
建议截断<r的样本
def clean_ftime(ftime, cut_percent=0.25):
    '\n    ftime 是完成问卷的秒数\n    思路：\n    1、只考虑截断问卷完成时间较小的样本\n    2、找到完成时间变化的拐点，即需要截断的时间点\n    返回：r\n    建议截断<r的样本\n    '
    t_min = int(ftime.min())
    t_cut = int(ftime.quantile(cut_percent))
    x = np.array(range(t_min, t_cut))
    y = np.array([len(ftime[(ftime <= i)]) for i in range(t_min, t_cut)])
    z1 = np.polyfit(x, y, 4)
    z2 = np.polyder(z1, 2)
    r = np.roots(np.polyder(z2, 1))
    r = int(r[0])
    return r