[英]How to modify SPSS output files with Python?
我在 SPSS 中制作自定義表格,但是當單元格值(百分比)四舍五入到 1 位小數時,它們有時會加起來為 99,9 或 100,1 而不是 100,0。 我的老板讓我把所有東西整齊地加起來為 100。這意味着稍微改變輸出表中的一些值。
我編寫了一些代碼來從表中檢索單元格值,這工作正常,但我找不到任何允許我更改已生成輸出中的單元格的方法或類。 我試過這樣的事情:
Table[(rij,6)] = CellText.Number(11)
和
SpssDataCells[(rij,6)] = CellText.Number(11)
但它一直給我“AttributeError:'SpssClient.SpssTextItem'對象沒有屬性'DataCellArray'”
如何成功更改 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'
SetValueAt
方法是更改表格中單元格值所需的方法。
附注。 我認為你的老板應該專注於更重要的事情,而不是把計費時間花在讓百分比加起來整齊地達到 100%(由於四舍五入)上。 還要確保在計算中使用盡可能多的小數點精度,以盡量減少這種“差異”。
舉個例子說明你可以用這樣的操作做些什么(除了修復回合錯誤):
上表顯示了呼吸葯物品牌 (R3) 的占有率 (SoV) 及其在所有品牌中的排名(數據的前兩列)以及僅在同一品牌類別中的 SoV 和排名(第三和第四列) . 與上個月(7 月 15 日)進行比較,如果排名增加,則以綠色突出顯示並添加一個向上的箭頭,如果排名下降,則以紅色突出顯示並添加向下的紅色箭頭。 只需為原本枯燥的表格添加一點顏色和可視化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.