gpt4 book ai didi

python - 在 xlsxwriter 的 add_series 中传递变量

转载 作者:行者123 更新时间:2023-12-01 08:27:45 26 4
gpt4 key购买 nike

我正在尝试使用 for 循环为 xlsx 文件中的图表添加系列,但出现了一个奇怪的错误。

这是我的代码。

这部分显示我已经对 DF 进行了排序并对其重新建立了索引,以便于将 DF 索引解释为 Excel 索引以供 Excel 单元格引用。

# Sort dataframe and reindex
pivDF = pivDF.sort_values(by=['Vg'])
pivDF = pivDF.reset_index(drop=True) # reindex dropping previous index instead of adding it as a new column

# Add the following as a sheet in a excel file:
# data, chart
## Create workbook
workbook = xlsxwriter.Workbook(dirPath + file_name + '.xlsx') # Creates workbook object
## Add a worksheet to hold the data.
writer = pd.ExcelWriter(dirPath+"//"+file_name+".xlsx", engine = 'xlsxwriter')
pivDF.to_excel(writer,sheet_name = 'Data')
writer.save()
## Add plot
### Create a new line chart.
chartsheet = workbook.add_chartsheet() # creates chartsheet objec
chart = workbook.add_chart({'type': 'line'}) # creates chart object

以下内容添加了该系列,这就是我遇到问题的地方。

### Configure the chart
#### Configure series.
##### Get unique Vg
Vglist = pivDF.Vg.unique()
C1 = 'D'
C2 = 'F'
for Vg in Vglist:
# Get min and max row excel index for current Vg
indexList = list(pivDF.loc[(pivDF.Vg == Vglist[0])].index.values) # gets list of index at Vg value
r1 = min(indexList) + 2
r2 = max(indexList) + 2
chart.add_series({
'name': 'Vg ' + Vg + 'V',
'categories': '=Sheet1!$'+ C1 +'$'+ r1 +':$'+ C1 +'$'+ r2, # Vd data
'values': '=Sheet1!$'+ C2 +'$'+ r1 +':$'+ C2 +'$'+ r2, # Id normalized data
})

提前谢谢您!

最佳答案

以编程方式设置 XlsxWriter 图表范围的最佳方法是避免使用 Sheet1!D1:D12 样式范围语法,并使用 docs 中显示的替代 list 语法。

类似于:

C1 = 3
C2 = 5
for Vg in Vglist:
indexList = list(pivDF.loc[(pivDF.Vg == Vglist[0])].index.values)
r1 = min(indexList) + 1
r2 = max(indexList) + 1
chart.add_series({
'name': 'Vg %sV' % Vg,
'categories': ['Sheet1', r1, C1, r2, C1],
'values': ['Sheet1', r1, C2, r2, C2],
})

关于python - 在 xlsxwriter 的 add_series 中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com