Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

314
Views
TypeError: no se puede realizar 'rand_' con una matriz dtyped [float64] y un escalar de tipo [bool]

Ejecuté un comando en python pandas de la siguiente manera:

 q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:'))]]

Recibí el siguiente error:

 TypeError: Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool]

la solución que probé usando esto: enlace de error .

cambió el código en consecuencia como:

 q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:')) & (q1_fisher_r[(q1_fisher_r['TP53']==1)])]

Pero aún así recibí el mismo error que TypeError: Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool]

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Tuve un problema similar con una configuración como la siguiente, que produjo el mismo mensaje de error. La solución muy simple para mí fue tener cada condición individual entre paréntesis . Debería haberlo sabido, pero quiero resaltarlo en caso de que alguien más tenga el mismo problema.

Código incorrecto:

 conditions = [ (df['A'] == '15min' & df['B'].dt.minute == 15), # Note brackets only surrounding both conditions together, not each individual condition df['A'] == '30min' & df['B'].dt.minute == 30, # Note no brackets at all ] output = [ df['Time'] + dt.timedelta(minutes = 45), df['Time'] + dt.timedelta(minutes = 30), ] df['TimeAdjusted'] = np.select(conditions, output, default = np.datetime64('NaT'))

Código correcto:

 conditions = [ (df['A'] == '15min') & (df['B'].dt.minute == 15), # Note brackets surrounding each condition (df['A'] == '30min') & (df['B'].dt.minute == 30), # Note brackets surrounding each condition ] output = [ df['Time'] + dt.timedelta(minutes = 45), df['Time'] + dt.timedelta(minutes = 30), ] df['TimeAdjusted'] = np.select(conditions, output, default = np.datetime64('NaT'))
over 4 years ago · Santiago Trujillo Report

0

Para filtrar por múltiples condiciones, encadenarlos por & y filtrar por boolean indexing :

 q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r['TumorST'].str.contains(':1:')] ^^^^ ^^^^ first condition second condition

El problema es que este código devolvió datos filtrados, por lo que no se puede encadenar por condición:

 q1_fisher_r[(q1_fisher_r['TumorST'].str.contains(':1:'))]

Problema similar:

 q1_fisher_r[(q1_fisher_r['TP53']==1)]

Muestra :

 q1_fisher_r = pd.DataFrame({'TP53':[1,1,2,1], 'TumorST':['5:1:','9:1:','5:1:','6:1']}) print (q1_fisher_r) TP53 TumorST 0 1 5:1: 1 1 9:1: 2 2 5:1: 3 1 6:1 df = q1_fisher_r[(q1_fisher_r['TP53']==1) & q1_fisher_r['TumorST'].str.contains(':1:')] print (df) TP53 TumorST 0 1 5:1: 1 1 9:1:
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!