Operación en marcos de datos de Pandas -- python campo con pandas camp Relacionados El problema

Operation on pandas data frames


0
vote

problema

Español

No sé cómo describir mi problema en palabras, solo lo modelo

MODELO DE PROBLEMA:

Digüemos que tenemos dos cuadros de datos DF1, DF2 con las mismas columnas

df1

  idx | col1 | col2 | col3 |  col4  ---------------------------------  0  |  1   | -100 |   2  |  -100    

df2

  idx | col1 | col2 | col3 |  col4 ---------------------------------  0  |  12  |  23  |  34  |   45    

Dados estos dos DF-S que recibimos

df_result

  idx | col1 | col2 | col3 |  col4  ---------------------------------  0  |  1   |  23  |   2  |   45    

es. Obtenemos df1 DONDE TODO error[E0392]: parameter `'de` is never used --> src/lib.rs:1:24 | 1 | struct IntParseVisitor<'de, V: Visitor<'de>> { | ^^^ unused parameter | = help: consider removing `'de`, referring to it in a field, or using a marker such as `std::marker::PhantomData` 0 sustituido con valores de error[E0392]: parameter `'de` is never used --> src/lib.rs:1:24 | 1 | struct IntParseVisitor<'de, V: Visitor<'de>> { | ^^^ unused parameter | = help: consider removing `'de`, referring to it in a field, or using a marker such as `std::marker::PhantomData` 1111.

Pregunta: ¿Cómo puedo hacerlo sin for-loop ? En particular, ¿hay una operación en pandas o en dos listas del mismo tamaño que podrían hacer lo que necesitamos?

PS: Puedo hacerlo con el bucle, pero será mucho más lento.

Original en ingles

I don't know how to describe my problem in words, I just model it

Problem modeling:

Let say we have two dataframes df1, df2 with the same columns

df1

idx | col1 | col2 | col3 |  col4  ---------------------------------  0  |  1   | -100 |   2  |  -100  

df2

idx | col1 | col2 | col3 |  col4 ---------------------------------  0  |  12  |  23  |  34  |   45  

Given these two df-s we get

df_result

idx | col1 | col2 | col3 |  col4  ---------------------------------  0  |  1   |  23  |   2  |   45  

I.e. we get df1 where all -100 substituted with values from df2 accordingly.

Question: How can I do it without for-loop? In particular, is there an operation in pandas or on two lists of the same size that could do what we need?

PS: I can do it with for loop but it will be much slower.

     
 
 

Lista de respuestas

2
 
vote

Puedes usar esto:

  df1[df1==-100] = df2   

Así es como funciona paso a paso:

  import pandas as pd import numpy as np  df1 = pd.DataFrame(np.array([[1,-100,2,-100],[-100,3,-100,-100]]), columns=['col1','col2','col3','col4']) df1  col1    col2    col3    col4 1       -100    2       -100 -100    3       -100    -100   df2 = pd.DataFrame(np.array([[12,23,34,45],[1,2,3,4]]), columns=['col1','col2','col3','col4']) df2  col1    col2    col3    col4 12      23      34      45 1       2       3       4   

utilizando la indexación booleana que tiene eso

  df1==-100  col1    col2    col3    col4 False   True    False   True True    False   True    True   

Entonces, cuando True puede asignar el valor correspondiente de df2 :

   this.getView().bindElement({         path: "/contacts/" + oEvent.getParameter("arguments").personPath,         model: "person"     }); 0  
 

You can use this:

df1[df1==-100] = df2 

This is how it works step-by-step:

import pandas as pd import numpy as np  df1 = pd.DataFrame(np.array([[1,-100,2,-100],[-100,3,-100,-100]]), columns=['col1','col2','col3','col4']) df1  col1    col2    col3    col4 1       -100    2       -100 -100    3       -100    -100   df2 = pd.DataFrame(np.array([[12,23,34,45],[1,2,3,4]]), columns=['col1','col2','col3','col4']) df2  col1    col2    col3    col4 12      23      34      45 1       2       3       4 

By using boolean indexing you have that

df1==-100  col1    col2    col3    col4 False   True    False   True True    False   True    True 

So when True you can assign the corresponding value of df2:

df1[df1==-100]=df2 df1  col1    col2    col3    col4 1       23      2       45 1       3       3       4 
 
 

Relacionados problema

2  Cambiar filas en pandas  ( Change rows in pandas ) 
Tengo una matriz en marco de datos de Pandas print dfMatrix 0 1 2 3 4 0 10000 10 8 11 10 1 10 100000 ...

0  El valor de la verdad de una serie es ambiguo. ¿Cómo puedo arreglar este error? [duplicar]  ( The truth value of a series is ambiguous how do i fix this error ) 
Esta pregunta ya tiene respuestas aquí : El valor de la verdad de una serie es ambiguo. Use A.EMPTY,...

1  Pandas DataFrame al diccionario con tuplas como clave y valores  ( Pandas dataframe to dictionary with tuples as key and values ) 
Necesito ayuda para hacer lo siguiente: Tengo un archivo CSV como lo siguiente, cargado en un Frame 'DF'. Hay varias regiones, diferentes valores para la me...

8  Añadir la tasa de cambio a Pandas DataFrame  ( Add rate of change to pandas dataframe ) 
Tengo el siguiente fábrico de datos de Pandas: lastrun value 0 2013-10-24 13:10:05+00:00 55376 1 2013-...

2  Python MultiPhreading no aumenta la velocidad  ( Python multithreading doesnt increase speed ) 
Tengo 2 archivos separados que contienen las coordenadas de un lugar y el otro que contiene la calle y el código postal. Mediante el uso de pandas Quiero ...

0  Fusionar con el minuto más cercano usando Pandas  ( Merge with the nearest minute using pandas ) 
Simplemente quiero fusionar dos cuadros de datos dentro de ± 1 min. AQUÍ NAME_DF con el conjunto de datos de muestra: Name Date A 2/19/2019 17:1...

2  Pandas Groupby y Selector orden  ( Pandas groupby and selector order ) 
Di que tengo un contexto de datos con 3 columnas: Criteria Group Value 0 A 0 0.1 1 B 0 0.2 2 B 1 0.3 3 B ...

-1  ¿Cómo lo convierto en este código OUTERHTML para sacar ciertos datos? (No sé cómo visualizarlo, así que quiero probar esto)  ( How do i loop over this outerhtml code to get out certain data i dont know ho ) 
Estoy tratando de obtener una lista que coincida con los distritos de la India a sus códigos de distrito, ya que fueron durante el censo de la población de 20...

1  ¿Puedes usar Pandas Groupby para agrupar filas, determinado sumando un valor de columna?  ( Can you use pandas groupby to group rows determined by summing a column value ) 
Me gustaría agrupar filas en un contexto de datos por valores de una columna. El ejemplo dado a continuación sería si estuviera agrupando los valores de 'Numb...

0  Coincidencia de cadenas en Python Pandas DataFrame cuando hay diferentes posibilidades  ( String match in python pandas dataframe when there is different possibilities ) 
Ingrese la descripción de la imagen aquí Tengo un conteo de datos (300,000 filas) con 4 columnas. Tengo una columna "Modelo" donde tengo los siguientes va...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos