Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Problema con Phyton Pandas
#1
Hola, soy un novato en esto y tengo un problema:
Estoy haciendo un programa que tiene que ver con costos en una empresa.

Lo que hago es abrir el archivo "CIERRE.xlsx", inserto dos columnas y lleno esas columnas con dos formulas. Ademas busco para cada valor en la columna "Código" el valor de la columna "Stock disponible" que se encuentra en el archivo "STK_ACTUAL.xlsx" donde ambos valores son iguales, y creo una columna nueva en df llamada "STK" la que lleno con estos valores, pero cuando veo el  archivo Excel guardado, me trae los valores correctos pero entre corchetes y no se a que se debe.

Mi código:

import pandas as pd

df = pd.read_excel('C:\COSTOS_relBase\CIERRE.xlsx', sheet_name='Detalle')
df2= pd.read_excel('C:\COSTOS_relBase\STK_ACTUAL.xlsx', sheet_name='Stock actual')
df = df.rename(index=str, columns={"Detalle": "CIERRE DE CAJA"})
df.insert(25, 'IVA', '')
df.insert(26, 'TOTAL', '')
df = df.rename(columns={'Total': 'Total neto'})

col_StkDisp = []

for elemento in df['Código']:
    StkDisp = df2.loc[df2['Código'] == elemento, 'Stock disponible'].values
    col_StkDisp.append(StkDisp)

df['STK'] = col_StkDisp


df['IVA'] = df['Total neto'].apply(lambda x: x*(19/100))
df['TOTAL'] = df['Total neto'] + df['IVA']

writer = pd.ExcelWriter('C:\COSTOS_relBase\CIERRE2.xlsx')
df.to_excel(writer, sheet_name='CIERRE DE CAJA', index=False)
writer.save()


Archivos adjuntos Miniatura(s)
   
Responder
#2
Cambia esto:

Código:
df['STK'] = col_StkDisp

A esto:


Código:
df['STk'] = ''.join(str(s) for s in col_StkDisp)
Responder
#3
Hola Costero, gracias por tu respuesta, pero no me funcionó, adjunto imagen.


Archivos adjuntos Miniatura(s)
   
Responder
#4
Ok. En la primera imagen solo se veia un valor en la lista. Parece que es una lista the de listas.

Prueba con esto

Código:
for elemento in df['Código']:
    StkDisp = df2.loc[df2['Código'] == elemento, 'Stock disponible'].values
    col_StkDisp.append(''.join(str(val) for val in StkDisp))
   
df['STk'] = ''.join(str(s) for s in col_StkDisp)

No puedo probarlo porque no tengo tus datos.

Suerte
Responder
#5
Hola Costero, nuevamente te agradezco tu tiempo, pero tampoco funcionó, te envío imagen.
También te envío los datos.


Archivos adjuntos Miniatura(s)
   

.xlsx   CIERRE.xlsx (Tamaño: 22,04 KB / Descargas: 1)
.xlsx   STK_ACTUAL.xlsx (Tamaño: 72,98 KB / Descargas: 1)
Responder
#6
Ok. Creo que funciona ahora. Debajo el codigo:


Código:
col_StkDisp = []

for elemento in df['Código']:
    StkDisp = df2.loc[df2['Código'] == elemento, 'Stock disponible'].values
    if len(StkDisp) == 0:
        col_StkDisp.append(0)
    else:
        col_StkDisp.append(StkDisp[0])

df['STK'] = col_StkDisp

Suerte
Responder
#7
Super, ahí si funcionó, gracias por tu paciencia, ahora voy a seguir adelante ya que esto era solo el principio del programa.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)