python打开文件_用Python(in PsychoPy)打开SPSS数据文件
用Python(in PsychoPy)打開SPSS數(shù)據(jù)文件
???????? 有時(shí),要訪問SPSS的sav文件中的內(nèi)容,而手里電腦沒有SPSS軟件,或者需要對(duì)SPSS數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行SPSS支持不夠好的操作,如對(duì)一組數(shù)據(jù)反復(fù)多次抽樣。可以使用Python中的Pandas模塊來訪問SPSS的數(shù)據(jù)文件。
???????? 這里以PsychoPy中的Python編程環(huán)境為例,探索一下如何打開SPSS的.sav文件?,F(xiàn)在我手里有一個(gè)保存了某個(gè)學(xué)校的某次考試成績的數(shù)據(jù)文件,名為“成績.sav”,其中有三個(gè)變量分別名為“語文”、“數(shù)學(xué)”及“物理”,即保存了這三科的成績。
???????? 訪問SPSS數(shù)據(jù)文件,需要用到pandas模塊中的read_spss函數(shù),這個(gè)函數(shù)在0.25版以后才有,但很多PsychoPy系統(tǒng)附帶的pandas是0.23版的。因此,首先需要將PsychoPy里的pandas進(jìn)行升級(jí),升級(jí)操作如下。假設(shè)你已經(jīng)安裝好了PsychoPy,在Windows系統(tǒng)中,打開命令提示符對(duì)話框(這一功能在Windows的系統(tǒng)工具中),在命令提示符后輸入
python –m ?pip install –upgrade pandas |
??????? 這里m前的減號(hào)是一個(gè),而upgrade前面的減號(hào)是兩個(gè)。運(yùn)行這個(gè)命令,需要你的電腦已經(jīng)連接網(wǎng)絡(luò),這個(gè)命令會(huì)自己判斷你的pandas是否為最新版本,如果不是,就會(huì)從網(wǎng)上下載升級(jí)文件將pandas更新為最新版。在我寫這篇小短文時(shí),pandas的版本是1.1.3。升級(jí)后,檢查PsychoPy中pandas的版本,可以使用如下語句。
import ?pandas as pd print(pd.__version__) |
???????? 注意,version前后的下劃線是兩個(gè)。
???????? 使用pandas讀取SPSS數(shù)據(jù)文件,還需要一個(gè)模塊叫pyreadstat,也是使用Windows命令提示窗口中運(yùn)行python的pip 命令來安裝。
python –m ?pip install pyreadstat |
???????? 好,現(xiàn)在就可以使用python語句來打開SPSS數(shù)據(jù)文件了。
在程序中,首先需要引用pandas模塊,通行的引用方法是給其取個(gè)別名pd。然后在第3行,聲名了一個(gè)名為data_file的變量,其中保存了數(shù)據(jù)文件的名字。這里假設(shè)數(shù)據(jù)文件與程序文件在同一個(gè)文件夾。然后在第6行,調(diào)用了pandas中的read_spss函數(shù),把保存了數(shù)據(jù)文件名的變量data_file傳遞給這個(gè)函數(shù)。這個(gè)函數(shù)的返回值存儲(chǔ)到變量my_data中。如果數(shù)據(jù)打開成功,程序就會(huì)接著運(yùn)行第9行的代碼,其作用是顯示出變量my_data中的內(nèi)容有多少,my_data的shape屬性可以獲得數(shù)據(jù)有多少行與多少列。
在輸出窗口我們看到一行文字顯示為(791,3),這說明我們的數(shù)據(jù)一共包含了791行,有三列。
我們還可以顯示其中數(shù)學(xué)列的前10個(gè)值,使用如下代碼。
在輸出窗口中,我們可以看到如下內(nèi)容:
?這就是數(shù)據(jù)文件中數(shù)學(xué)一列的前5個(gè)值。
?也可以使用pandas中的基本統(tǒng)計(jì)功能計(jì)算一些常見統(tǒng)計(jì)量,如,
?這段代碼會(huì)在輸出窗口中顯示本數(shù)據(jù)文件中語文的平均成績。其它統(tǒng)計(jì)量像標(biāo)準(zhǔn)差、最小值、最大值等,都可以顯示出來。
總結(jié)
以上是生活随笔為你收集整理的python打开文件_用Python(in PsychoPy)打开SPSS数据文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中methods方法_java中
- 下一篇: python2.7 pyqt4创建qta