#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))