爲何使用Pandas
便捷的數據處理能力
讀取文件方便
封裝了Matplotlib、Numpy的畫圖和計算html
3大核心結構:java
DataFrame
Panel
Series數組
一、DataFrame數據結構
DataFrame
結構:既有行索引,又有列索引的二維數組
屬性:
shape
index
columns
values
T
方法:
head()
tail()
3 DataFrame索引的設置
1)修改行列索引值
2)重設索引
3)設置新索引dom
簡單demo:spa
import numpy as np import pandas as pd def demo(): data = np.random.normal(0, 1, (10, 5)) print(data) # 添加行索引 stock = [ "股票{}".format(i) for i in range(10) ] pd.DataFrame(data, index=stock) # 添加列索引 date = pd.date_range(start="20180101", periods=5, freq="B") if __name__ == '__main__': demo()
一、結構:orm
二、屬性htm
shape + index + columns + values + Tblog
data = np.random.normal(0, 1, (10, 5))
三、方法索引
head() : 默認返回數據的前5行,head(3),返回前3行
tail() :默認返回數據的後5行,tail(3),返回後3行
四、DataFrame索引的設置
1)修改行列索引值: 只能總體修改,不能單獨修改索引
2)重設索引
3)設置新索引
import numpy as np import pandas as pd def demo(): data = np.random.normal(0, 1, (10, 5)) print(data) # 添加行索引 stock = [ "股票{}".format(i) for i in range(10) ] pd.DataFrame(data, index=stock) # 一、添加列索引 date = pd.date_range(start="20180101", periods=5, freq="B") # 修改行列索引值:總體修改,不能單獨修改某一個 # 【錯誤】 data.index[2] = "股票88" --》 不能單獨修改索引 stock_ = ["股票_{}".format(i) for i in range(10)] data.index = stock_ # 二、重設索引 data.reset_index(drop=False) # False: 不刪除原索引, True刪除原索引h, 默認False # 三、設置某列的新索引,建立新的dataframe df = pd.DataFrame({'month': [1, 4, 7, 10], 'year': [2012, 2014, 2013, 2014], 'sale': [55, 40, 84, 31]}) # 以月份設置新的索引 df.set_index("month", drop=True) # 設置多個索引,以年和月份(具備多索引的DataFrame,可用於三維數組) new_df = df.set_index(["year", "month"]) if __name__ == '__main__': demo()
MultiIndex與Panel
一、MultiIndex
import pandas as pd def demo(): df = pd.DataFrame({'month': [1, 4, 7, 10], 'year': [2012, 2014, 2013, 2014], 'sale': [55, 40, 84, 31]}) new_df = df.set_index(["year", "month"]) print(new_df.index) # 索引列表 print(new_df.index.names) # 索引名稱 if __name__ == '__main__': demo()
二、Panel
panel咱們一般看作pandas的容器,沒辦法直接看3維數據,只能從某一個維度出發看另外2個二維的數據
Series