Filtrar órdenes que tengan propina en Shopify

PHOTO EMBED

Sat Apr 19 2025 14:56:12 GMT+0000 (Coordinated Universal Time)

Saved by @vjg #python

import pandas as pd

# Cargar archivo
input_file = 'input.csv'
output_file = 'filtered_output.csv'

# Leer CSV
df = pd.read_csv(input_file)

# Paso 1: Identificar el monto del Tip por orden
# Creamos un nuevo DataFrame que contiene el monto del Tip por cada orden
tip_montos = df[df['item'].str.contains('Tip', case=False, na=False)][['orden', 'monto']]
tip_montos = tip_montos.rename(columns={'monto': 'monto_tip'})

# Paso 2: Unir esa información al DataFrame original (por la columna 'orden')
df = df.merge(tip_montos, on='orden', how='left')

# Paso 3: Aplicar el filtro original (conservar órdenes repetidas que tengan 'Tip')
filtered_df = df.groupby('orden').filter(lambda x: (x['item'].str.contains('Tip', case=False, na=False).any()))

# Paso 4: Eliminar filas sin 'metodo'
filtered_df = filtered_df[filtered_df['metodo'].notna()]

# Paso 5: Eliminar columna 'item'
filtered_df = filtered_df.drop(columns=['item'])

# Guardar resultado
filtered_df.to_csv(output_file, index=False)
print(f'Filtrado completado. Archivo guardado como {output_file}')
content_copyCOPY