Articles of grupo de

Pandas `DataFrameGroupBy` y` SeriesGroupBy`

Admito que no soy un gurú de Python, pero aún así, tratar con Pandas DataFrameGroupBy y SeriesGroupBy excepcionalmente contraintuitivo. (Tengo un fondo R). Tengo el dataframe a continuación: import pandas as pd import numpy as np df = pd.DataFrame({‘id’ : range(1,9), ‘code’ : [‘one’, ‘one’, ‘two’, ‘three’, ‘two’, ‘three’, ‘one’, ‘two’], ‘colour’: [‘black’, ‘white’,’white’,’white’, ‘black’, […]

Inserte filas como resultado de una operación grupal en el dataframe original

Por ejemplo, tengo un dataframe de pandas de la siguiente manera: col_1 col_2 col_3 col_4 a X 5 1 a Y 3 2 a Z 6 4 b X 7 8 b Y 4 3 b Z 6 5 Y quiero, para cada valor en col_1, agregar los valores en col_3 y col_4 (y muchas […]

Aplicación de la función de media acumulativa a un objeto agrupado

Tengo un df DataFrame donde cada registro representa un juego de fútbol. Los equipos aparecerán más de una vez. Necesito calcular algún tipo de media móvil para las puntuaciones de cada equipo (bueno, no es exactamente la media móvil de la letra). date home away score_h score_a 166 2013-09-01 Fulham Chelsea 0 0 167 2013-09-03 […]

El multiprocesamiento de Python map_async genera un error en Windows

El siguiente código funciona perfectamente en Unix pero genera un multiprocesamiento.TimeoutError en Windows 7 (ambos sistemas operativos utilizan Python 2.7). ¿Alguna idea de por qué? Gracias. from multiprocessing import Pool def increment(x): return x + 1 def decrement(x): return x – 1 pool = Pool(processes=2) res1 = pool.map_async(increment, range(10)) res2 = pool.map_async(decrement, range(10)) print res1.get(timeout=1) […]

Python Pandas: Asignar el último valor del grupo DataFrame a todas las entradas de ese grupo

En Python Pandas, tengo un DataFrame. Agrupo este DataFrame por una columna y quiero asignar el último valor de una columna a todas las filas de otra columna. Sé que puedo seleccionar la última fila del grupo con este comando: import pandas as pd df = pd.DataFrame({‘a’: (1,1,2,3,3), ‘b’:(20,21,30,40,41)}) print(df) print(“-“) result = df.groupby(‘a’).nth(-1) print(result) […]

pasando argumentos y manager.dict a pool en multiproceso en Python 2.7

Quiero paralelizar una función que actualizará un diccionario compartido usando Pool en lugar de Process para que no asigne demasiadas CPU. es decir, puedo tomar esto def my_function(bar,results): results[bar] = bar*10 def paralell_XL(): from multiprocessing import Pool, Manager, Process manager = Manager() results=manager.dict() jobs = [] for bar in foo: p=Process(target=my_function, args=(bar, results)) jobs.append(p) p.start() […]

Python pandas error al hacer groupby cuentas

Al hacer cuentas de groupby sobre varias columnas, aparece un error. Aquí está mi dataframe y también un ejemplo que simplemente etiqueta los distintos grupos “b” y “c”. df = pd.DataFrame(np.random.randint(0,2,(4,4)), columns=[‘a’, ‘b’, ‘c’, ‘d’]) df[‘gr’] = df.groupby([‘b’, ‘c’]).grouper.group_info[0] print df abcd gr 0 0 1 0 0 1 1 1 1 1 0 2 […]

¿Cómo funciona la función de callback en multiproceso python map_async

Me costó toda una noche depurar mi código, y finalmente encontré este problema complicado. Por favor, eche un vistazo al código de abajo. from multiprocessing import Pool def myfunc(x): return [i for i in range(x)] pool=Pool() A=[] r = pool.map_async(myfunc, (1,2), callback=A.extend) r.wait() Pensé que obtendría A=[0,0,1] , pero la salida es A=[[0],[0,1]] . Esto […]

Mantener las columnas después de un grupo en un dataframe vacío

El dataframe es un df vacío después de la consulta. Cuando esté agrupado, active la advertencia de tiempo de ejecución, luego obtenga otro dataframe vacío sin columnas. ¿Cómo mantener las columnas? df = pd.DataFrame(columns=[“PlatformCategory”,”Platform”,”ResClassName”,”Amount”]) print df resultado: Empty DataFrame Columns: [PlatformCategory, Platform, ResClassName, Amount] Index: [] entonces groupby: df = df.groupby([“PlatformCategory”,”Platform”,”ResClassName”]).sum() df = df.reset_index(drop=False,inplace=True) print […]

¿Cómo hacer groupby en pandas con parte de la cadena de fecha?

Date Description 0 6/09/2012 Amazon 1 6/09/2012 iTunes 2 6/08/2012 iTunes 3 6/08/2012 Building 4 6/08/2012 Slicehost Tengo un DataFrame como el anterior. Puedo seleccionar la parte del día de la cita de datos anterior mediante una función get_day () como esta: def get_day(date_string): d = datetime.strptime(date_string, ‘%m/%d/%Y’) return d.day Ahora, ¿cómo paso esta función […]