I have excel files with anywhere from 30-35 columns and 50-1500 rows of data depending on the company. The columns in question are as follows; USED REMAIN REFUND. These three columns are made up of calculations from other columns.
USED is each row of GAL added up as it goes along so the excel calculation looks like this: starts with one =W2, then the next row is W2+W3 then W3+W4 and so on
REMAIN is ASSIGNED-USED
REFUND is GAL*CREDIT
Would something like this even be possible, currently I’m doing all the calculations in excel which is time consuming and after some research I figure it would be easier to code something to automate this.
Grateful for any help even if its just the calculations for one column
I’ve looked for some ideas online and figure pandas is the best way of going about it, but if anything else is suggested I’m open to anything
import pandas as pd filename = home/itdept/Documents/BestWines.xlsx df = pd.read_excel(filename) df['Refund'] = df['QUANTITY IN GAL']*df['CBMA Credit'] df.head(5) df.to_excel("path to save")
This is what I came up with for the one column: Refund, I wasn’t sure how/if I could incorporate all of the other columns in the code as well
Series.cumsum for cumulative sum:
df['USED'] = df['GAL'].cumsum()
From there, any basic arithmetic like subtraction and multiplications can be run directly on columns:
# SUBTRACTION df['REMAIN'] = df['ASSIGNED'] - df['USED'] # MULTIPLICATION df['REFUND'] = df['QUANTITY IN GAL'] * df['CBMA Credit']
# SUBTRACTION df['REMAIN'] = df['ASSIGNED'].sub(df['USED']) # MULTIPLICATION df['REFUND'] = df['QUANTITY IN GAL'].mul(df['CBMA Credit'])
assign for one compact statement:
import pandas as pd filename = "home/itdept/Documents/BestWines.xlsx" df = (pd.read_excel(filename) .assign(USED = lambda x: x['GAL'].cumsum(), REMAIN = lambda x: x['ASSIGNED'].sub(x['USED']), REFUND = lambda x: x['QUANTITY IN GAL'].mul(x['CBMA Credit']) ) ) df.head(5) df.to_excel("path to save")
"""importing packages to be used in our code""" import pandas as pd from pandas import ExcelWriter from pandas import ExcelFile """importing excel content to df DataFrame""" df = pd.read_excel('sflowone.xlsx', sheetname='Sheet1') """ we will use LIST for updating (USED)coloumn""" newlist =  # created empty list x=int(0) # created a variable which will take all values of "GAL" for value in df["GAL"]: # FOR LOOP will run for every value in "GAL" and takes data in "value" x = value + x # add all earliear entries of "GAL" newlist.append(x) # here we append the new values of x inside empty list df.drop("USED",axis=1,inplace= True) # deleted the "USED" column if exist before updating. df.insert(3,"USED",newlist) # inserted updated "USED" column with newlist in index number "3" """Updating (REMAIN) and (REFUND)""" df ["REMAIN"]= df["ASSIGNED"]- df["USED"] df ["REFUND"]= df["GAL"]* df["CREDIT"] """ Visualising first 5 entries""" df.head(5) """ saving to Excel sheet """ df.to_excel("sflowfinal.xlsx") """CODE IS TESTED AND RUNNING, for query please reply"""