Я развернул матрицу корреляции, чтобы я мог создать список коррелирующих пар и их корреляционную силу (R).Теперь я хочу добавить столбец, который применяет метки категорий к каждому значению на основе порога.
Thresholds:
1.'None': x = 0
2.'Very Weak': 0 > x <= 0.3
3.'Weak': 0.3 > x <= 0.5
4.'Moderate': 0.5 > x <= 0.7
5.'Strong': 0.7 > x <= 0.9
6.'Very Strong': 0.9 > x < 1
7.'Perfect': x = 1
Я уже близко.Как мне сделать это без написания этого длинного пути с «если» и «еще»?
Я использую Jupyter notebook v5.0.0 через Ananconda Navigator
Я использую anaconda v pandas .cut () функционировать и становиться действительно близким, но я обнаруживаю, что мне приходится выдумывать мусорные ведра, чтобы приблизиться, но это не идеально.путь.
import pandas as pd
df = pd.DataFrame({
'R Pairs' : ['A:B', 'A:C', 'A:D', 'A:E', 'A:F', 'B:C', 'B:D', 'B:E', 'B:F', 'C:D', 'C:E', 'C:F', 'D:E', 'D:F'],
'R' : [1, 0, -1, 0.1, 0, 0.8, -0.3, 0.99, 0.001, 0.51, 1, -0.68, 0.7, -0.9999]})
bins = [0, 0.3, 0.5, 0.7, 0.9, 0.999, 1]
labels = ['Very Weak', 'Weak', 'Moderate', 'Strong', 'Very Strong', 'Perfect']
df['R Strength'] = pd.cut(df['R'].abs(), bins=bins, labels=labels)
print(df)
Output:
R Pairs R R Strength
0 A:B 1.0000 Perfect
1 A:C 0.0000 NaN
2 A:D -1.0000 Perfect
3 A:E 0.1000 Very Weak
4 A:F 0.0000 NaN
5 B:C 0.8000 Strong
6 B:D -0.3000 Very Weak
7 B:E 0.9900 Very Strong
8 B:F 0.0010 Very Weak
9 C:D 0.5100 Moderate
10 C:E 1.0000 Perfect
11 C:F -0.6800 Moderate
12 D:E 0.7000 Moderate
13 D:F -0.9999 Perfect
Я ожидал / надеялся, что «R Strengths» будет соответствовать порогам, которых нет на границах порогов.Я надеюсь, что упускаю что-то очевидное из параметров .cut ().