pandas
1. Pandas介紹[**]
-
概念
- 是一個專門用於數據挖掘的科學計算庫
- 它封裝了matplotlib和numpy
- 獨特數據類型(DataFrame), 讓數據更有表現力
-
案例的小知識點:
-
創建DataFrame
- pd.DataFrame(數組, index, columns)
- Index;行索引
- columns: 列索引
- pd.DataFrame(數組, index, columns)
-
生成日期
- 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
- pd.date_range(start, end, periods, freq)
-
DataFrame結構
- 用於描述二維數據的結構
常見屬性:
形狀: shape
行索引: index
列索引: columns
數據的ndarray: values
轉置: T
常見方法:
獲取前5條數據: head()
獲取後5條數據: tail() - DatatFrame 修改索引
- 對象.index = 行索引列表
- 注意: 只能整體修改,不能只修改一部分
- 重設索引
- 對象.reset_index(drop=False)
- 重置索引, 索引就變成了從0開始的索引了
- drop: 是否刪除原索引, 默認False, 如果指定爲True就刪除原索引
- 設置索引
- 對象.set_index([‘列名’, …])
- 用於描述二維數據的結構
-
MultiIndex與Panel
- MultiIndex: 多維索引
- 具有多維索引DataFrame, 可以表示多維數據結構.
- Panel: 用於存儲三維數據的結構, 新版Pandas已經廢除這個類了.
- 創建: pd.Panel(data, items, major_axis, minor_axis)
- data: 數據
- items: 第一個維度的索引
- major_axis: 第二維度索引
- minor_axis: 第三個維度索引
- 使用
- 索引與切片
- 對象[:,:,:]
- 創建: pd.Panel(data, items, major_axis, minor_axis)
- 注意: 在最新的pandas上這個Panel這個類已經不可用了.
- MultiIndex: 多維索引
-
Series:
- 作用: 用於存儲一維數據的結構
- 創建series
- 直接創建, 自動生成從0開始索引
- pd.Series(數組/list)
- 創建指定索引
- pd.Series(數組/list, index=列表)
- 使用字典創建
- pd.Series({‘鍵’:‘值’, …})
- 說明: 鍵就是索引, 值就是數據
- 直接創建, 自動生成從0開始索引
-
常用屬性
- 索引: index
- 值: values
-
2. 基本數據操作[****]
-
索引操作
- 案例引入小知識點:
- 讀取csv
- pd.read_csv(‘路徑’)
- 刪除特徵值(列)
- 對象.drop(刪除索引列表, axis=0)
- axis=0, 就按行刪除, 默認
- 讀取csv
- axis=1, 按列刪除.
- 直接使用行列索引, 先列後行
- 對象[‘列名’[‘行索引名稱’]
- 先行後列, 名稱索引
- 對象.loc[行索引名稱, 列索引名稱]
- 對象.loc[ :, :]
- 案例引入小知識點:
-
先行後列, 數值索引
- 對象.iloc[行索引名稱, 列索引名稱]
- 對象.iloc[ :, :]
- 先行後列, 數值和名稱索引混合使用
- 對象.ix[行索引名稱, 列索引名稱]
- 對象.ix[ :, :]
-
賦值操作
- 對象[‘列名’] = 值/列表
- 對象.列名 = 值/列表
- 兩種方式的區別是什麼
- 對象[‘列名’] 也可修改列, 也可以添加新列
- 對象.列名 只能修改列, 不能添加新列
-
排序:
- DataFrame排序
- 按照值進行排序
- 對象.sort_values(by=[排序的列名,…], ascending=True)
- ascending=True 升序, 默認
- ascending=False 降序
- 對象.sort_values(by=[排序的列名,…], ascending=True)
- 按照索引進行排序
- 對象.sort_index(ascending=True)
- 按照值進行排序
- series:
- 值排序
- 對象.sort_values(ascending=True)
- 索引排序
- 對象.sort_index(ascending=True)
- 值排序
- DataFrame排序