path ="C:\\Users\\Adam\\Desktop\\Stock Trackers\\"
excel_file_list = os.listdir(path)
finalDf = pd.DataFrame()
for file in excel_file_list:
#if excel_files.startswith("Stock"):
df = pd.read_excel(path+file,sheet_name="Main",usecols="A:D,R")
df['Qty Received']=df['Total Received']
df = df.drop('Total Received', axis=1)
df['InvoicedValue'] = df['Price']*df['Qty Invoiced']
df['ReceivedValue'] = df['Price']*df['Qty Received']
df['DeltaQty']= df['Qty Received']-df['Qty Invoiced']
df['DeltaValue']= df['ReceivedValue']-df['InvoicedValue']
finalDf = pd.concat([finalDf, df])
finalDf.to_excel("finalfile4.xlsx")
上面的脚本生成了“finalfile4”,但问题是最终输出没有将所有数据(每个文件的)堆叠在一起。
在每个文件之后(因此for循环的每次迭代),都有空行,直到第10982行,在该行之后,下一个文件的数据开始:
.
在两个文件的数据之间,除了“接收数量”列为零外,还有空行。
我如何修正这个问题,使循环的每次迭代都在前一个文件数据的正下方输出数据?
1条答案
按热度按时间gopyfrb31#
您可能在原始excel工作表中使用公式填充了整列。从屏幕截图中可以看出,A(
no name
)和F("Qty Received"
)列有值,即使其余行为空。您可以在将其连接到主 Dataframe 之前从读取的 Dataframe 中删除这些行。