我有一个代码,我将 txt 转换为 xlsx,然后添加一个包含公式的列,然后我想在不同的工作表中创建一个包含该信息的数据透视表。该代码可以正常工作,但它会创建并清空工作表,而不是包含信息的工作表。
所以代码看起来像这样:
import numpy as np
import openpyxl
#Transforming our txt to xlsx
path = r"C:\Users\roslber\Desktop\Codes\Python\Projects\Automated routes.xlsx"
rssdata= pd.read_csv("dwp.txt", sep="\t")
rssdata.to_excel(path, index= None , header= True)
#Writing the formula column
wb = openpyxl.load_workbook(filename=path)
ws1 = wb["Sheet1"]
ws1["AC1"] = "CF Weight"
row_count= ws1.max_row
actual_row= 2
while actual_row <= row_count: #writting the formula in every row
r= str(actual_row)
ws1["AC"+r] = "=(O"+r + "*P"+r +"*Q"+r +")/28316.8"
actual_row= actual_row + 1
#Creating a new sheet with the pivot tables
df = pd.read_excel(path, 0, header= 0) #defining pivot table dataframe
wb.create_sheet("Sheet2")
pv_pack = pd.pivot_table(df, values=["actual_service_time"],\
index=["delivery_station_code"], columns=["cluster_prefix"], aggfunc=np.sum) #constructing the pivot table
print(pv_pack)
with pd.ExcelWriter(path, mode="a") as writer:
pv_pack.to_excel(writer, sheet_name="Sheet2")
writer.save() #inserting pivot table in sheet2
wb.save(path)
出于数据保护的原因,我无法向您显示数据透视表中的信息,但是当我打印它时,我可以准确地看到我想要的信息。问题是,尽管正确创建了 Sheet2,但我可以看到打印的信息没有出现在 Sheet2 中。为什么会这样?
我检查了这些问题:
关于第一个,显然 openpyxl 无法创建数据透视表,但我实际上不需要数据透视表格式,我只需要 Sheet2 中的 pv_pack 信息,如我打印时显示的那样。
我试图更改我的代码以模仿他们在第二个问题中所做的事情,但没有奏效。
先感谢您
编辑对 RJ Adriaansen 的回答:Sheet1 中的信息如下所示:
id order mtd delivery_station_code cluster_prefix actual_service_time
xh aabb1 one 1 One_ 231
xr aabb2 two 2 Two_ 135
xd aabb3 three 3 One_ 80
xh aabb8 two 1 Two_ 205
xp aabb9 three 2 One_ 1
xl aabb10 one 3 Two_ 115
我的编辑器中打印的代码如下所示:
delivery_station_code One_ Two_
1 231 205
2 1 135
3 80 115