一、創建pandas可識別的一維數據和二維數據、多維數據
pd.Series(list/dict)
pd.DataFrame(list/dict,index,column) #傳入array二維數組,index行索引,column列索引
直接讀取csv、數據庫數據、txt
pd.date_range(開始時間,periods=周期)#
多維(多層索引)
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(8, 2), index=index, columns=['A', 'B'])
二、定位數據
df.columnName按列名索引 df.A=df['A'],比如:列名為‘A’
df[columnName]按列名索引,與上面一樣
df.loc[indexName]按行名索引
df.loc[indexName]按行名索引,與上面一樣
df.loc[:]切片的另一種形式索引
df.loc[dates[0]]查出含dates數組結構行數的第一個元素
df.loc[:,'A','B']查出A,B兩列
df.iloc[3]按整數查出第三列
df.iloc[[1,2,4],[0,2]]按整數查出0,1,3行數,0,1列的數據。
df.iloc[1,1]按整數查出1行1列的數據
df.iat[1,1]按整數查出1行1列的數據與iloc方法一樣
df.at[:]與loc方法一樣
選擇、設置標准 Python / Numpy 的表達式已經非常直觀,交互也很方便,但對於生產代碼,我們還是推薦優化過的 Pandas 數據訪問方法:.at、.iat、.loc 和 .iloc。
df[:,:]按行列索引,切片方式
df.at[:,:6]
按計算條件查詢出數據
df[條件]
條件:
df.A>0#代表A列全部大於0的數據
df.indexName>0,代表IndexName行數全部大於0的數據
df>0,整個表的數據>0的數據
df.isin(數組A)#篩選出包含數據A的數據
df2[df2['E'].isin(['two', 'four'])]#篩選出E列包含foo,key值的數據
通過可調用選擇
.loc,.iloc以及[]索引也可以接受一個callable索引器。在callable必須與一個參數(調用系列或數據幀)返回的有效輸出索引功能。loc查詢的是行
df1.loc[lambda df: df.A > 0, :]
df1.iloc[:, lambda df: [0, 1]]
df1[lambda df: df.columns[0]]
df1.A.loc[lambda s: s > 0]
三、更改數據或賦值
通過索引=目標值
例如:df.iat[1]='foo'#第2行的數據全部等於foo
按標簽賦值
df.at[dates[0], 'A'] = 0
按條件where、條件賦值
df2[df2 > 0] = -df2#將全部大於0的數據進行負數賦值。
四、合並數據
五、分離數據
六、快速計算數據的合、平方根、減法、乘法、除法、sin,cos,tant等
七、數據排序