Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- # Debbuging
- # import pydevd_pycharm
- # pydevd_pycharm.settrace('localhost', port=9999, stdoutToServer=True, stderrToServer=True)
- # Retorna el resultado de la operación
- def formula(min, max):
- # (((100 -M)*m)/100) +M
- return (((100 - max) * min) / 100) + max
- # Lee el archivo csv
- df = pd.read_csv('expedientes.csv')
- # Creamos un json que almacenara los datos temporalmente
- temp_df = {}
- # Creamos una iteración para recorrer el dataframe
- # y obtener el ID del expediente
- for expediente in df['Expediente']:
- # Obtenemos el ID del expediente
- # y lo asiganmos al json así como generar dos listas que contendrán
- # los datos correspondientes a cada columna de minimo y maximo
- temp_df[expediente] = {'numbers': {
- 'maximo': [],
- 'minimo': [],
- }}
- # Obtenemos los datos de cada columna
- # que corresponda al ID del expediente
- values = df[df['Expediente'] == expediente]
- # Generamos una iteración para recorrer las columnas
- # con los datos obtenidos previamente
- for key in values:
- # Validamos que la columna corresponda a una de las dos
- # maximos o minimos
- if key == 'minimo' or key == 'maximo':
- # Obtenemos los datos de la columna
- for value in values[key]:
- # Agregamos los datos al json temporal
- temp_df[expediente]['numbers'][key].append(value)
- # Creamos una iteración para recorrer el json temporal
- # atraves de los IDs de expediente
- for expediente in temp_df:
- # Obtenemos el valor maximo de la lista de maximos
- max_restante_max = max(temp_df[expediente]['numbers']['maximo'])
- # Obtenemos el valor minimo de la lista de maximos
- max_restante_min = min(temp_df[expediente]['numbers']['maximo'])
- # Obtenemos el valor maximo de la lista de minimos
- min_restante_max = max(temp_df[expediente]['numbers']['minimo'])
- # Obtenemos el valor minimo de la lista de minimos
- min_restante_min = min(temp_df[expediente]['numbers']['minimo'])
- # Llamamos a la función formula para obtener el resultado de max_restante
- temp_df[expediente]['max_restante'] = formula(max_restante_min, max_restante_max)
- # Llamamos a la función formula para obtener el resultado de min_restante
- temp_df[expediente]['min_restante'] = formula(min_restante_min, min_restante_max)
- # Generamos una iteración para recorrer el json temporal
- # y agregar los valores al dataframe original
- for expediente in temp_df:
- # add new columns to the dataframe min_restante and max_restante
- df.loc[df['Expediente'] == expediente, 'min_restante'] = temp_df[expediente]['min_restante']
- df.loc[df['Expediente'] == expediente, 'max_restante'] = temp_df[expediente]['max_restante']
- # print the dataframe
- print(df)
Advertisement
Add Comment
Please, Sign In to add comment