Datawhale组队-pandas(上)基础(自学)
Pandas是Python的核心數據分析支持庫,提供了快速靈活、明確的數據節(jié)后,旨在簡單、直觀地處理關系型、標記型數據。Pandas的目標是稱為Python數據分析時間與實戰(zhàn)的必備高級工具,其長遠目標是稱為最強大、最靈活,可以支持任何語言的開源數據。
Pandas適用于處理以下類型的數據:
- 與SQL或Excel表類似的,含異構列的表格數據;
- 有序和無序(非固定頻率)的時間序列數據
- 帶行列標簽的矩陣數據,包括同構或異構數據
- 任意其它形式的觀測、統計數據集,數據轉入Pandas數據結構時不必事先標記。
Pandas的優(yōu)勢:
- 處理浮點與非浮點數據里的缺失數據,表示為NaN;
- 大小可變:插入或刪除DataFrame等多維對象的列;
- 自動、顯式數據對齊:顯式地將對象與一組標簽對齊,也可以忽略標簽,在Series、DataFrame計算時自動與數據對齊;
- 強大、靈活的分組功能:拆分-應用-組合數據集,聚合、轉換數據;
- 把Python和Numpy數據結構里不規(guī)則、不同索引的數據輕松地轉換為DataFrame對象;
- 基于智能標簽,對大型數據集進行切片、花式索引、子集分解等操作;
- 直觀地合并(merge)、連接(join)數據集;
- 靈活地重塑(reshape)、透視(pivot)數據集;
- 軸支持結構化標簽:一個刻度支持多個標簽;
- 成熟的IO工具:讀取文本文件(csv)、Excel文件、數據庫等來源的數據,利用超快的HDF5格式保存、加載數據;
- 時間序列:支持日期范圍生成、頻率轉換、移動窗口統計、移動窗口線性回歸、日期位移等時間序列功能。
?
一、文件讀取與寫入
1.讀取與寫入
常見的文件格式有csv、txt、xls、xlsx格式
#讀取csv df = pd.read_csv('data/table.csv') #讀取txt df_txt = pd.read_table('data/table.txt') #可設置sep分隔符參數 #讀取xls或xlsx df_excel = pd.read_excel('data/table.xlsx') #寫入csv df.to_csv('data/table.csv') #寫入xls或xlsx df_excel.to_excel('data/table.xlsx')二、基本數據結構
Pandas的兩種數據類型:Series是帶標簽的一維數組,可存儲整數、浮點數、字符串、Python對象等類型的數據。軸標簽統稱為索引,Data是由多種類型的列構成的二維標簽數據結構,支持一維和多維數據輸入,還可以有選擇人地傳遞index和columns參數。
1.Series
對于一個Series,常用的屬性為值(values),索引(index),名字(name),類型(dtype)
s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='這是一個Series',dtype='float64') print(s.name) print(s.values) print(s.index) print(s.dtype)2.DataFrame
創(chuàng)建一個DataFrame
df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五'))#從DataFrame取出一列為Series print(df['col1']) print(type(df)) print(type(df['col1']))#修改行或列名 df.rename(index={'一':'one'},columns={'col1':'new_col1'})#DataFrame的屬性和方法 print(df.index) print(df.columns) print(df.values) print(df.shape) print(df.mean())索引對齊特性:
df1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3]) df2 = pd.DataFrame({'A':[1,2,3]},index=[3,1,2]) df1-df2 #由于索引對齊,因此結果不是0列的刪除與添加(drop或pop、del和直接增加、assign)
df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五')) #刪除 #drop df.drop(index='五',columns='col1') #del df['col1']=[1,2,3,4,5] del df['col1'] #pop df['col1']=[1,2,3,4,5] df.pop('col1')#直接增加列(以索引為準) df1['B']=list('abc') #用assign,不會對原DataFrame修改 df1.assign(C=pd.Series(list('def')))三、常用基本函數
1、head和tail
head是默認展示df的前5行,可通過head(10)展示第十行
tail是默認展示df的后5行,可通過tail(10)展示第十行
2.nunique和unique
nunique顯示有多少個唯一值
unique顯示所有的唯一值
3.count和value_counts
count返回非缺失值元素個數
value_counts返回每個元素有多少個
4.describe和info
describe默認統計數值型數據的各個統計量,可以自行選擇分位數
info函數返回有那些列,有多少非缺失值、每列的類型
5.idxmax和nlargest
idxmax函數返回最大值所在索引,在某些情況下特別適用,idxmin功能類似?
nlargest函數返回前幾個大的元素值,nsmallest功能類似
6.clip和replace
clip是對超過或者低于某些值的數進行截斷
replace是對某些值進行替換?
7.apply函數
df['Math'].apply(lambda x:str(x)+'!').head() #可以使用lambda表達式,也可以使用函數df.apply(lambda x:x.apply(lambda x:str(x)+'!')).head() #這是一個稍顯復雜的例子,有利于理解apply的功能四、排序
1.索引排序
df.set_index('Math').head() #set_index函數可以設置索引 df.set_index('Math').sort_index().head() #可以設置ascending參數,默認為升序,True2.值排序
#單值排序 df.sort_values(by='Class').head() df.sort_values(by=['Address','Height']).head()練習:
?
總結
以上是生活随笔為你收集整理的Datawhale组队-pandas(上)基础(自学)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: i3wm开启自动设置显示器顺序方向分辨率
- 下一篇: zbbz 坐标标注lisp_cad坐标标