Stack Overflow на русском Asked by Kate on December 22, 2020
Вывожу несколько перцентилей по ряду данных:
pd.DataFrame(np.percentile(data[‘purchase’],[1,5,10,20,30,40,50,60,90,95,99])).T
Выводятся значения перцентилей с заголовками от 0 до 10.
Хотелось бы, чтобы вместо цифр от 0 до 10 выводились названия перцентилей: 1,5,10,20 итд.
Возможно ли это сделать?
Пример:
In [103]: df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]), columns=['a', 'b'])
In [104]: pct = np.array([1,5,10,20,30,40,50,60,90,95,99])
In [105]: res = pd.DataFrame(np.percentile(df["b"], pct), index=pct).T
In [106]: res
Out[106]:
1 5 10 20 30 ... 50 60 90 95 99
0 1.27 2.35 3.7 6.4 9.1 ... 55.0 82.0 100.0 100.0 100.0
[1 rows x 11 columns]
альтернативное решение средствами Pandas:
In [113]: res = df[["b"]].quantile(pct / 100).T
In [114]: res
Out[114]:
0.01 0.05 0.10 0.20 0.30 ... 0.50 0.60 0.90 0.95 0.99
b 1.27 2.35 3.7 6.4 9.1 ... 55.0 82.0 100.0 100.0 100.0
[1 rows x 11 columns]
можно также преобразовать наименования столбцов в целые значения:
In [117]: res.columns = (res.columns * 100).astype(int)
In [118]: res
Out[118]:
1 5 10 20 30 ... 50 60 90 95 99
b 1.27 2.35 3.7 6.4 9.1 ... 55.0 82.0 100.0 100.0 100.0
[1 rows x 11 columns]
Correct answer by MaxU on December 22, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP