如何用Python修改SPSS输出文件?

2024-05-19 14:14:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我用SPSS制作自定义表格,但是当单元格值(百分比)四舍五入到小数点后1位时,它们有时会相加为99,9或100,1而不是100,0。我老板让我把所有的东西都整齐地加起来,加起来是100。这意味着稍微改变输出表中的一些值。在

我编写了一些代码从表中检索单元格值,这很好,但是我找不到任何方法或类允许我更改已经生成的输出中的单元格。我试过类似的方法:

表[(rij,6)]=CellText.编号(十一)

以及

SpssDataCells[(rij,6)]=CellText.编号(十一)

但它总是给我“属性错误:”SpssClient.SpssTextItem'datacellar-ray没有'datacellar'attribute''

如何成功地更改SPSS中输出表的单元格值?在

目前我的代码:

import SpssClient, spss

# Python verbinden met SPSS.
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItemList = OutputDoc.GetOutputItems()

# Laatste tabel pakken.
lastTab = OutputItemList.Size()-2
OutputItem = OutputItemList.GetItemAt(lastTab)
Table = OutputItem.GetSpecificType()
SpssDataCells = Table.DataCellArray()

# For loop. Voor iedere rij testen of de afgeronde waarden optellen tot 100.
# Specifieke getallen pakken.
rij=0
try:
while (rij<20):
   b14 = float(SpssDataCells.GetUnformattedValueAt(rij,0))
   z14 = float(SpssDataCells.GetUnformattedValueAt(rij,1))
   zz14 = float(SpssDataCells.GetUnformattedValueAt(rij,2))
   b15 = float(SpssDataCells.GetUnformattedValueAt(rij,4))
   z15 = float(SpssDataCells.GetUnformattedValueAt(rij,5))
   zz15 = float(SpssDataCells.GetUnformattedValueAt(rij,6))
   print [b14,z14,zz14,b15,z15,zz15]
   rij=rij+1
except:
  print 'Einde tabel'

Tags: 方法代码float编号spss输出表outputdocspssclient
1条回答
网友
1楼 · 发布于 2024-05-19 14:14:11

^{}方法是更改表中单元格值所需的方法。在

PS.我认为你的老板应该把精力放在更重要的事情上,而不是花大量的时间让百分比加起来整整100%(由于四舍五入)。还要确保在计算中使用尽可能多的小数点精度,以尽量减少这种“差异”。

更新:

只是举个例子来说明这样的操作可以做些什么(除了修复圆错误):

enter image description here

上表显示了呼吸系统药物品牌(R3)的话语权(SoV)份额及其在所有品牌中的排名(前两列数据)和SoV&rank也仅在同一品牌类别内(第三列和第四列)。与上月(7月15日)相比,如果排名上升,则以绿色突出显示,并添加一个向上箭头;如果排名下降,则以红色突出显示,并添加向下的红色箭头。只需在原本单调乏味的桌子上增加一点色彩和视觉效果。在

相关问题 更多 >