Python的學習筆記案例8--空氣質量指數計算9.0

倒數第二節課了,本節課主要講獲取數據之後,數據處理與數據分析,利用Pandas進行數據處理分析。

什麼是Pandas?
一個強大的分析結構化數據的工具集(結構化數據:csv,json。非結構化數據:聲音、視頻、圖片)
基礎是NumPy,提供了高性能矩陣的運算
應用於數據挖掘,數據分析
如:學生成績分析、股票數據分析等
提供數據清洗功能(獲取的數據不一定是純淨的,有空值,把這些空值處理就是清洗數據)

數據結構:
Series:類似一維數組的對象
通過list構建Series
ser_obj = pd.Series(range(10))
由索引和數據組成:索引在左,數據在右。索引是自動創建的。
獲取索引和數據ser_obj.index, er_obj.values
預覽數據ser_obj.head(n)  前幾行數據;  ser_obj.tail(n)  後幾行數據
通過索引獲取數據:ser_obj[idx]
索引與數據的對應關係仍保持在數組運算的結果中
通過dict構建Series
name屬性
ser_obj.name,ser_obj.index.name

舉例說明:

DataFrame
類似多維數組/表格數據(如:Excel、R中的data.frame)
每列數據可以是不同類型,what about ndarray ?
索引包括列索引和行索引
通過ndarray構建DataFrame
通過dict構建DataFrame
通過列索引獲取列數據(Series類型,獲取一列數據)
df_obj[col_idx]或df_obj.col_idx
不連續索引獲取數據
df_obj['label1','label2']
增加列數據,類似dict添加key-value
df_obj[new_col_idx] = data
刪除列
del df_obj[col_idx]
排序:
索引排序:sort_index
按值排序:sort_values(by= 'label1')

常用的統計計算
sum、mean、max、min ......
axis=0按列統計axis= 1按行統計
skipna排除缺失值,默認爲True
idmax、idmin、comsum
統計描述
describe 產生多個統計數據

舉例說明:

1、讀取csv文件;2、查看前五行數據;3、查看某2列的數據;4、查看數據的基本信息;5、數據預覽;6、基本統計;

7、排序;8、獲取某一列的前幾行數據;9、將獲取的數據寫入csv文件。

"""
    作者:lanxingbudui
    日期:2020-03-07
    功能:AQI計算
    版本:9.0
"""

import pandas as pd


def main():
    """
        主函數
    """
    aqi_data = pd.read_csv('china_city_aqi.csv')
    # 查看前五行數據
    print(aqi_data.head(5))
    # 只查看前三行AQI、CO/1h數據
    print(aqi_data.head(3)[['City', 'AQI', 'CO/1h']])
    print('基本信息:')
    print(aqi_data.info())
    print('數據預覽:')
    print(aqi_data.head())

    # 基本統計
    print('AQI最大值:', aqi_data['AQI'].max())
    print('AQI最小值:', aqi_data['AQI'].min())
    print('AQI均值:', aqi_data['AQI'].mean())

    # top10
    top10_citis = aqi_data.sort_values(by=['AQI']).head(10)
    print('空氣質量最好的10個城市:')
    print(top10_citis)

    # bottom10
    # bottom10_citis = aqi_data.sort_values(by=['AQI']).tail(10)
    bottom10_citis = aqi_data.sort_values(by=['AQI'], ascending=False).head(10)
    print('空氣質量最差的10個城市:')
    print(bottom10_citis)

    # 保存csv文件
    top10_citis.to_csv('top10_aqi.csv', index=False)
    bottom10_citis.to_csv('bottom10_aqi.csv', index=False)


if __name__ == '__main__':
    main()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章