機器學習(5)- Pandas

pandas

1. Pandas介紹[**]

  1. 概念

    • 是一個專門用於數據挖掘的科學計算庫
    • 它封裝了matplotlib和numpy
    • 獨特數據類型(DataFrame), 讓數據更有表現力
  2. 案例的小知識點:

    1. 創建DataFrame

      • pd.DataFrame(數組, index, columns)
        • Index;行索引
        • columns: 列索引
    2. 生成日期

      • pd.date_range(start, end, periods, freq)
        • start: 起始日期
        • end: 結束日期
        • periods: 日期序列有多少天( 與end選其1)
        • freq: 默認日期是連續的, 如果指定爲’B’, 跳過週六日.
      # 1. 生成10只股票5天漲跌幅
      stock_change = np.random.normal(0, 1, (10, 5))
      # 生成行索引列表
      index = ['股票{}'.format(i) for i in range(stock_change.shape[0])]
      # 在創建DataFrame指定列索引
      columns = pd.date_range('20191010', periods=5, freq='B')
      stock_rise = pd.DataFrame(stock_change, index=index, columns=columns)
      stock_rise
      
    3. DataFrame結構

      1. 用於描述二維數據的結構
        常見屬性:
        形狀: shape
        行索引: index
        列索引: columns
        數據的ndarray: values
        轉置: T
        常見方法:
        獲取前5條數據: head()
        獲取後5條數據: tail()
      2. DatatFrame 修改索引
        • 對象.index = 行索引列表
        • 注意: 只能整體修改,不能只修改一部分
      3. 重設索引
        • 對象.reset_index(drop=False)
        • 重置索引, 索引就變成了從0開始的索引了
        • drop: 是否刪除原索引, 默認False, 如果指定爲True就刪除原索引
      4. 設置索引
      • 對象.set_index([‘列名’, …])
    4. MultiIndex與Panel

      • MultiIndex: 多維索引
        • 具有多維索引DataFrame, 可以表示多維數據結構.
      • Panel: 用於存儲三維數據的結構, 新版Pandas已經廢除這個類了.
        • 創建: pd.Panel(data, items, major_axis, minor_axis)
          • data: 數據
          • items: 第一個維度的索引
          • major_axis: 第二維度索引
          • minor_axis: 第三個維度索引
        • 使用
          • 索引與切片
        • 對象[:,:,:]
      • 注意: 在最新的pandas上這個Panel這個類已經不可用了.
    5. Series:

      • 作用: 用於存儲一維數據的結構
      1. 創建series
        1. 直接創建, 自動生成從0開始索引
          1. pd.Series(數組/list)
        2. 創建指定索引
          • pd.Series(數組/list, index=列表)
        3. 使用字典創建
          • pd.Series({‘鍵’:‘值’, …})
          • 說明: 鍵就是索引, 值就是數據
    6. 常用屬性
      - 索引: index
      - 值: values

2. 基本數據操作[****]

  1. 索引操作

    1. 案例引入小知識點:
      • 讀取csv
        • pd.read_csv(‘路徑’)
      • 刪除特徵值(列)
        • 對象.drop(刪除索引列表, axis=0)
        • axis=0, 就按行刪除, 默認
    • axis=1, 按列刪除.
    1. 直接使用行列索引, 先列後行
      • 對象[‘列名’[‘行索引名稱’]
    2. 先行後列, 名稱索引
      • 對象.loc[行索引名稱, 列索引名稱]
      • 對象.loc[ :, :]
  2. 先行後列, 數值索引

    • 對象.iloc[行索引名稱, 列索引名稱]
    • 對象.iloc[ :, :]
    1. 先行後列, 數值和名稱索引混合使用
      • 對象.ix[行索引名稱, 列索引名稱]
      • 對象.ix[ :, :]
  3. 賦值操作

    1. 對象[‘列名’] = 值/列表
    2. 對象.列名 = 值/列表
    • 兩種方式的區別是什麼
      • 對象[‘列名’] 也可修改列, 也可以添加新列
      • 對象.列名 只能修改列, 不能添加新列
  4. 排序:

    • DataFrame排序
      1. 按照值進行排序
        • 對象.sort_values(by=[排序的列名,…], ascending=True)
          • ascending=True 升序, 默認
          • ascending=False 降序
      2. 按照索引進行排序
        • 對象.sort_index(ascending=True)
    • series:
      1. 值排序
        • 對象.sort_values(ascending=True)
      2. 索引排序
        • 對象.sort_index(ascending=True)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章