Группировать столбец фрейма данных на основе другого фрейма данных

#python #pandas #dataframe #grouping

#python #pandas #фрейм данных #группировка

Вопрос:

На основе этого фрейма данных

   df1  Name     Age
       Johny     15
       Diana     35
       Doris     97
       Peter     25
       Antony    55
  

У меня есть этот фрейм данных с количеством диапазонов, которые я хочу использовать, например

  df2 Header   Init1   Final1   Init2  Final2  Init3  Final3
     Names    NaN      NaN     NaN     NaN     NaN    NaN
     Age       0        20      21      50      51    100
  

То, что я ищу, — это получить такой результат

   df3  Name     Age
       Johny    0-20
       Diana    21-50
       Doris    51-100
       Peter    21-50
       Antony   51-100
  

Я не знаю, возможно ли решение с помощью cut (), но я новичок в python.

Ответ №1:

Используя pd.cut :

 l = df2.iloc[1,1:].tolist()
labels = [str(t[0]) '-' str(t[1]) for t in zip(l[::1],l[1::1])]

df['Age'] = pd.cut(df['Age'], bins=l, labels=labels)

print(df)
     Name     Age
0   Johny    0-20
1   Diana   21-50
2   Doris  51-100
3   Peter   21-50
4  Antony  51-100
  

Комментарии:

1. Результат прекрасен, но чего я не хочу, так это записывать значения, которые находятся в 1, я хочу, чтобы вы прочитали их из другого фрейма данных.

2. Есть ли какой-либо способ прочитать имя столбца, а не вашу позицию? потому что я хочу применить его в фрейме данных с большим количеством данных, и там больше нет одинаковых позиций

3. @IriSandivel Да, используя loc

4. Не могли бы вы привести мне пример? Приношу извинения за неудобства, но я все еще новичок

5. @IriSandivel Проверьте ссылку в моем предыдущем комментарии.