Как применить результат операции groupby к каждой группе из другого объекта groupby?

#python-3.x #pandas

#python-3.x #pandas

Вопрос:

Краткие сведения

Я создал объект groupby под названием dfgo_1 , который показывает следующие соответствующие строки и столбцы

 prediction_score prediction_test category content sentiment prediction  company  AAL 216 216 214 216 216 216  AEP 151 151 150 151 151 151  AMD 119 119 117 119 119 119  AMZN 256 256 253 256 256 256  AXP 115 115 113 115 115 115  BA 27 27 27 27 27 27  BTC-USD 1377 1377 1377 1377 1377 1377  C 193 193 193 193 193 193  COG 6 6 6 6 6 6  CSCO 106 106 106 106 106 106  EBAY 17 17 17 17 17 17  ETH-USD 65 65 65 65 65 65  F 101 101 101 101 101 101  FB 218 218 218 218 218 218  GE 516 516 516 516 516 516  GM 684 684 681 683 684 684  GOOGL 105 105 105 105 105 105  GS 189 189 189 189 189 189  HAS 47 47 47 47 47 47  INTC 28 28 28 28 28 28  JNJ 6 6 6 6 6 6  JPM 198 198 198 197 198 198  KBM 34 34 34 34 34 34  MCD 313 313 313 313 313 313  MET 76 76 76 76 76 76  MS 262 262 260 262 262 262  MSFT 84 84 84 84 84 84  NFLX 270 270 270 270 270 270  NVDA 309 309 309 309 309 309  PFE 185 185 185 185 185 185  PG 38 38 38 38 38 38  QCOM 278 278 278 278 278 278  TSLA 374 374 374 374 374 374  

Затем я создал второй объект grouby под названием dfgo_2

 sentiment prediction_score prediction_test company prediction  AAL negative 21 -90.136540 54  positive 1 40.066054 34 AEP negative -9 -44.566219 28  positive 4 42.090887 24 AMD negative -8 -34.699134 28 ... ... ... ... ... PG positive 2 13.471137 11 QCOM negative -3 -91.246809 68  positive 0 94.864358 69 TSLA negative -41 -131.299530 118  positive 33 102.446030 96  66 rows × 3 columns  

Я хочу разделить все значения prediction_test столбца from dfgo_2 на соответствующий prediction_test столбец from dfgo_1 . Например , Для компаний AAL и AEP я бы выполнил следующие вычисления 54/216 , 37/216 , и 28/151 , 24/151 для обоих positive и negative далее dfgo_2 .

Я попробовал сделать следующее, но не могу получить ожидаемый результат.

 def calc_precision(x, arr):  res = x/arr[0]  arr=arr[1:]  return res  new_db = new_db.loc[ new_db.index[new_db.prediction.str.contains('positive|negative', na=False)] ] dfgo_1 = new_db.groupby(["company"]).count() ds = [c for c in dfgo_1.prediction_test ] dfgo_2 =new_db.groupby(["company", "prediction"]) dfgo_2.apply(lambda x: calc_precision(x, ds))