У меня есть следующие серии:
0 79.0
1 220.0
2 185.0
3 199.0
4 226.0
5 141.0
6 341.0
7 151.0
8 57.0
9 313.0
10 273.0
11 113.0
12 328.0
Если я использую pandas.cut()
на этом, вот что я получаю:
series equal_intvls
0 79.0 (0.979, 306.1]
1 220.0 (0.979, 306.1]
2 185.0 (0.979, 306.1]
3 199.0 (0.979, 306.1]
4 226.0 (0.979, 306.1]
5 141.0 (0.979, 306.1]
6 341.0 (306.1, 608.2]
7 151.0 (0.979, 306.1]
8 57.0 (0.979, 306.1]
9 313.0 (306.1, 608.2]
10 273.0 (0.979, 306.1]
11 113.0 (0.979, 306.1]
12 328.0 (306.1, 608.2]
pandas.cut()
дает мне сериюинтервалов, имеющих одинаковую длину (максимальное значение - минимальное значение), длина интервалов равна 2, но от начальной точки на интервалах до конечной точки в каждом интервале есть несколько чисел, которые могут не совпадать для каждогоинтервалов.
Если я использую pandas.cut()
, я получаю интервалы одинаковой длины, но как я могу разбить этот ряд на интервалы, которые содержат одинаковое количество элементов в каждом интервале ??
То, что я хотел бы получить, это новый столбец, содержащий эти интервалы с одинаковым количеством элементов в них.Взяв в качестве примера следующий массив:
[1, 7, 7, 4, 6, 3]
я хотел бы получить эту серию интервалов с одинаковым количеством элементов:
[(0.999, 3.667] ,(3.667, 6.333] , (6.333, 7.0]]
(0.999, 3.667] - There are 2 values in this imterval: (1, 3)
(3.667, 6.333] - There are 2 values in this interval (4, 6)
(6.333, 7.0] - And again, 2 values within this interval (7, 7)
Я хотел бы получитьинтервалы в последовательной форме, так что я могу ввести его как новый столбец в исходный файл.
Я пробовал np.split
и np.array_split
безуспешно, я также посетил некоторые другие сообщения в этомсайт, который похож на то, что я хочу, но не, кажется, действительно подходит для моего случая.Пожалуйста, помогите.
Каков наилучший способ получить такие интервалы ??
Большое спасибо заранее