Python數據科學(四) 數據收集系列

傳送門:

收集正確的數據是咱們完成數據分析的前提.python

1.數據型態

  • 定性數據(Qualitative or Categorical Data):是一組表示事物性質、規定事物類別的文字表述型數據,不能將其量化,只能將其定性。數據庫

    • 敘述特性或種類
  • 定量數據(Quantitative or Numerical Data):能夠被計數或測量。bash

  • 定性分析與定量分析應該是統一的,相互補充的;定性分析是定量分析的基本前提,沒有定性的定量是一種盲目的、毫無價值的定量;定量分析使定性分析更加科學、準確,它能夠促使定性分析得出普遍而深刻的結論。函數

  • 定量分析是依據統計數據,創建數學模型,並用數學模型計算出分析對象的各項指標及其數值的一種方法。定性分析則是主要憑分析者的直覺、經驗,憑分析對象過去和如今的延續情況及最新的信息資料,對分析對象的性質、特色、發展變化規律做出判斷的一種方法。工具

  • 相比而言,前一種方法更加科學,但須要較高深的數學知識,然後一種方法雖然較爲粗糙,但在數據資料不夠充分或分析者數學基礎較爲薄弱時比較適用,更適合於通常的投資者與經濟工做者。可是必須指出,兩種分析方法對數學知識的要求雖然有高有低,但並不能就此把定性分析與定量分析截然劃分開來。事實上,現代定性分析方法一樣要採用數學工具進行計算,而定量分析則必須創建在定性預測基礎上,兩者相輔相成,定性是定量的依據,定量是定性的具體化,兩者結合起來靈活運用才能取得最佳效果。post

  • 不一樣的分析方法各有其不一樣的特色與性能,可是都具備一個共同之處,即它們通常都是經過比較對照來分析問題和說明問題的。正是經過對各類指標的比較或不一樣時期同一指標的對照才反映出數量的多少、質量的優劣、效率的高低、消耗的大小、發展速度的快慢等等,才能做爲鑑別、下判斷提供確鑿有據的信息。性能

舉個例子:網站

◆ 定性分析: 分析: _ 知幾寫了不少篇文章 ◆ 定量分析: 分析:_ 知幾寫了107篇文章。ui

個人理解是定量分析主要關注的是頻率;定性分析關注的是意義。spa

###定量數據又可分爲:

  • **離散數據(Discrete Data):**指其數值只能用天然數或整數單位計算,例如企業的人數
    • 只能用天然數或整數單位計算
    • 只能按計量單位數計數,可由通常計數方法取得
  • **連續數據(Continuous Data):**在必定區間內能夠任意取值的數據,其數值是接二連三的,例如人的身高
    • 必定區間內能夠任意取值的數據,其數值是接二連三的,相鄰兩個數值可取無限個數值
    • 其數值只能用測量或計量的方法得到

2.結構化vs半結構化vs非結構化數據

  • 結構化數據
    • 每筆數據都有固定的字段、固定的格式,方便程序進行後續取用與分析
    • 例如數據庫
  • 半結構化數據
    • 數據介於數據化結構與非結構化數據之間
    • 數據具備字段,也能夠依據字段來進行查找,使用方便,但每筆數據的字段可能不一致
    • 例如:XML,JSON
  • 非結構化數據
    • 沒有固定的格式,必須整理之後才能存取
    • 沒有格式的文字、網頁數據

1.結構化數據

  • 結構化數據也稱做行數據,是由二維表結構來邏輯表達和實現的數據,嚴格地遵循數據格式與長度規範,主要經過關係型數據庫進行存儲和管理。
  • 對數據的處理和撈取能夠經過**SQL語句**。

2.半結構化數據 - XML

<users>
    <user>
        <name>xsl</name>
        <gender>boy</gender>
        <age>23</age>
    </user>
    <user>
      <name>xlm</name>
      <gender>girl</gender>
    </user>
</users>
複製代碼
  • 可使用字段存儲數據內容
  • 字段不固定,例如xlm就少了age字段
  • 能夠彈性的存放各類字段格式的數據

3.半結構化數據 - JSON

[
  user:{
    name:xsl,
    gender:boy,
    age:12,
},
  user:{
    name:xsl,
    gender:girl,
}
]
複製代碼
  • 如同XML可使用字段存儲數據內容
  • 使用Key:Value存放數據
  • 不用宣告字段的結尾,能夠比XML更快更有效傳輸數據

4.非結構化數據

  • 沒有固定的數據格式
    • 例如網站數據
  • 必須透過ETL(Extract,Transformation,Loading)工具將數據轉換爲結構化數據才能取用

因爲咱們常見的數據是非結構化數據,爲了進行數據分析,咱們就須要從非結構化數據中挖掘數據,咱們就須要先把非結構化數據轉換成結構化數據,此時咱們就可使用ETL工具。

數據抽取、轉換、存儲過程

3.Python IO與檔案處理

Python提供了默認操做文件所必需的基本功能和方法。可使用文件對象執行大部分文件操做。

##打開文件 在讀取或寫入文件以前,須要使用Python的內置open()函數打開文件。此函數建立一個文件對象,該對象將用於調用與其相關聯的其餘支持方法。

語法:

f = open(file_name [, access_mode][, buffering])
複製代碼
  • file_name參數是一個字符串值,指定要訪問的文件的名稱。
  • access_mode肯定文件打開的模式,即讀取,寫入,追加等。可能的值的完整列表以下表所示。 這是一個可選參數,默認文件訪問模式爲(r - 也就是隻讀)。
  • bufferin若是buffering值設置爲0,則不會發生緩衝。 若是緩衝值buffering爲1,則在訪問文件時執行行緩衝。若是將緩衝值buffering指定爲大於1的整數,則使用指定的緩衝區大小執行緩衝操做。若是爲負,則緩衝區大小爲系統默認值(默認行爲)。
編號 模式 描述
1 r 打開的文件爲只讀模式。文件指針位於文件的開頭,這是默認模式。
2 rb 打開僅用二進制格式讀取的文件。文件指針位於文件的開頭,這是默認模式。
3 r+ 打開讀寫文件。文件指針放在文件的開頭。
4 rb+ 以二進制格式打開一個用於讀寫文件。文件指針放在文件的開頭。
5 w 打開僅供寫入的文件。 若是文件存在,則覆蓋該文件。 若是文件不存在,則建立一個新文件進行寫入。
6 wb 打開僅用二進制格式寫入的文件。若是文件存在,則覆蓋該文件。 若是文件不存在,則建立一個新文件進行寫入。
7 w+ 打開寫入和取讀的文件。若是文件存在,則覆蓋現有文件。 若是文件不存在,建立一個新文件進行閱讀和寫入。
8 wb+ 打開一個二進制格式的寫入和讀取文件。 若是文件存在,則覆蓋現有文件。 若是文件不存在,建立一個新文件進行閱讀和寫入。
9 a 打開一個文件進行追加。 若是文件存在,則文件指針位於文件末尾。也就是說,文件處於追加模式。若是文件不存在,它將建立一個新文件進行寫入。
10 ab 打開一個二進制格式的文件。若是文件存在,則文件指針位於文件末尾。 也就是說,文件處於追加模式。若是文件不存在,它將建立一個新文件進行寫入。
11 a+ 打開一個文件,用於追加和閱讀。 若是文件存在,則文件指針位於文件末尾。 文件以附加模式打開。 若是文件不存在,它將建立一個新文件進行閱讀和寫入。
12 ab+ 打開一個二進制格式的附加和讀取文件。 若是文件存在,則文件指針位於文件末尾。文件以附加模式打開。若是文件不存在,它將建立一個新文件進行讀取和寫入。
  • write()方法:將任何字符串寫入打開的文件。 重要的是要注意,Python字符串能夠是二進制數據,而不只僅是文本。
  • close()方法:刷新任何未寫入的信息並關閉文件對象,以後不能再進行寫入操做。
f =open('zj.txt', 'w')  #讀寫模式
f.write('hello xlm') #寫入 hello xlm
f.close() 關閉文件

#用with寫
with open('zj.txt', 'r') as f:
    print(f.read()) #所有讀取

with open('zj.txt', 'r') as f:
    for line in f.readlines():
        print(line)   #分行打印出來
        print(line.strip())  #去除多餘的換行
複製代碼

打開本地文件,能夠看到`hello xlm` 已經寫入文件
相關文章
相關標籤/搜索