TransWikia.com

Как назвать столбцы по наименованию перцентилей?

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 итд.

Возможно ли это сделать?

One Answer

Пример:

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP