Отображение связанных данных в Pandas - PullRequest
0 голосов
/ 23 марта 2020
df12.head()
            COMPONENT_ID   PSRO       binned   PSRO_SPEED
4080  11S02CY383YH1934794910  7.470  (7.4, 7.65]  (7.4, 7.65]
4722  11S02CY388YH1934786330  7.491  (7.4, 7.65]  (7.4, 7.65]
4708  11S02CY388YH1934782718  7.497  (7.4, 7.65]  (7.4, 7.65]
4726  11S02CY388YH1934786336  7.564  (7.4, 7.65]  (7.4, 7.65]
4707  11S02CY388YH1934782709  7.581  (7.4, 7.65]  (7.4, 7.65]

Я хочу, чтобы объединенные данные отображались на разные значения. Я пытался

df12['PSRO_SPEED']=df12['PSRO_SPEED'].map({'(7.4,7.65]': 'high_speed'})

Но это не работает. Он меняет df12 ['PSRO_SPEED'] на NAN.

1 Ответ

1 голос
/ 23 марта 2020

Я думаю, что это Interval, а не строка, поэтому возможное решение:

i = pd.Interval(7.4,7.65, closed='right')
df12['PSRO_SPEED']=df12['PSRO_SPEED'].map({i: 'high_speed'})

Или для вашего решения необходимо преобразовать столбец в строку:

df12['PSRO_SPEED']=df12['PSRO_SPEED'].astype(str).map({'(7.4,7.65]': 'high_speed'})

Но лучше добавить параметр label в cut:

bins = [7.4,7.65,7.9,8.15,8.4,8.65] 
labels = ['lowest','low','medium','great','greatest']
df12['binned'] = pd.cut(df12['PSRO'], bins=bins, labels=labels)
...