1 dates=pd.date_range('20160728',periods=6) #創建固定頻度的時間序列 2 df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) #創建6*4的隨機數,索引,列名稱。 3 df2=pd.DataFrame({'A':pd.Timestamp('20160728'),'B':pd.Series(1)})#字典創建Dataframe,假如字典的數據長度不同,以最長的數據為准。 4 df2.dtypes #查看各行的數據格式 5 df2.head() df2.tail(5) #查看前、后幾列 6 df.columns df.value #查看列名、value 7 df.describe() #查看描述性的統計,比如每一列的count、mean、std(標准差)... 8 df.T df.sort(columns='C') #轉秩、排序 9 df['A'] df[1:3]#選擇A列數據,選擇1-2行數據,切片操作得到的是行數據。 10 df.loc[:,['A','B']] #選擇多列數據 11 df.loc['20160728':'20160730',['A','B']] #選擇局部區域 12 df.at[dates[0],'A'] #選擇某個值 13 df.iloc[3] df.iloc[1,1]#提取第四行數據,取第2行第2列的這個數 14 df.iloc[3:5,0:2] #像array一樣切片操作 15 df.iloc[[1,2,4],[0,2]] #提取不連續的行和列 16 df.iat[1,1]#專門取某個數,效率比較高 17 df[(df.D>0)&(df.C<0)] #選擇D列數據大於0的行 18 df[['A','B']][(df.D>0)&(df.C<0)]#選擇D列數據大於0的行,只返回A,B兩列 19 df['D'].isin(alist)#alist是一個預先定義的列表,把要篩選的值寫到列表中,查找D數據中含有alist的值 20 os.getcwd()#獲得當前的工作目錄 21 df=pd.read_csv('',encoding='gbk',sep=',')#讀取csv文件 22 counts=df[u'專業名稱'].value_counts() #計數統計 23 plt=counts.plot(kind='bar').get_figure() 24 plt.savefig('d/plot.png') #畫圖 25 good=df[df[u'高考分數']>520] #篩選 26 good_counts=good[u'專業名稱'].value_counts() 27 per=good_counts/counts #計算百分比,直接利用矩陣的除法 28 df.groupby('A').first() #按A列分組,輸出每一組的第一行數據 29 df.groupby(['A','B']) #按兩列分組 30 #創建函數,作為分組標准。 下例:如果列名是abem中的之一,就分為組別v反之為w 31 def get_type(letter): 32 if letter.lower() in 'abem': 33 return 'v' 34 else: 35 return 'w' 36 grouped=df.groupby(get_type,axis=1) 37 38 import pandas.util.testing as tm 39 colors=tm.choice(['red','green'],size=10) 40 foods=tm.choice(['eggs','ham'],size=10) #隨機創建兩個數組 41 index=pd.MultiIndex.from.arrays([colors,foods],names=['color','food']) #創建MultiIndex對象,然后創建DataFrame對象 42 df.pd.DataFrame(np.random.randn(10,2),index=index) 43 print df.query('color=="red"') #查詢 44 grouped=df.groupby(level='food')#在分組中使用索引 45 df.index.names=[None,None] 46 print df.query('ilevel_0=="red"')#刪除了索引名稱,只能使用ilevel_0表示第一個索引