日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Datawhale组队-pandas(上)基础(自学)

發(fā)布時(shí)間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Datawhale组队-pandas(上)基础(自学) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Pandas是Python的核心數(shù)據(jù)分析支持庫,提供了快速靈活、明確的數(shù)據(jù)節(jié)后,旨在簡單、直觀地處理關(guān)系型、標(biāo)記型數(shù)據(jù)。Pandas的目標(biāo)是稱為Python數(shù)據(jù)分析時(shí)間與實(shí)戰(zhàn)的必備高級工具,其長遠(yuǎn)目標(biāo)是稱為最強(qiáng)大、最靈活,可以支持任何語言的開源數(shù)據(jù)。

Pandas適用于處理以下類型的數(shù)據(jù):

  • 與SQL或Excel表類似的,含異構(gòu)列的表格數(shù)據(jù);
  • 有序和無序(非固定頻率)的時(shí)間序列數(shù)據(jù)
  • 帶行列標(biāo)簽的矩陣數(shù)據(jù),包括同構(gòu)或異構(gòu)數(shù)據(jù)
  • 任意其它形式的觀測、統(tǒng)計(jì)數(shù)據(jù)集,數(shù)據(jù)轉(zhuǎn)入Pandas數(shù)據(jù)結(jié)構(gòu)時(shí)不必事先標(biāo)記。

Pandas的優(yōu)勢:

  • 處理浮點(diǎn)與非浮點(diǎn)數(shù)據(jù)里的缺失數(shù)據(jù),表示為NaN;
  • 大小可變:插入或刪除DataFrame等多維對象的列;
  • 自動(dòng)、顯式數(shù)據(jù)對齊:顯式地將對象與一組標(biāo)簽對齊,也可以忽略標(biāo)簽,在Series、DataFrame計(jì)算時(shí)自動(dòng)與數(shù)據(jù)對齊;
  • 強(qiáng)大、靈活的分組功能:拆分-應(yīng)用-組合數(shù)據(jù)集,聚合、轉(zhuǎn)換數(shù)據(jù);
  • 把Python和Numpy數(shù)據(jù)結(jié)構(gòu)里不規(guī)則、不同索引的數(shù)據(jù)輕松地轉(zhuǎn)換為DataFrame對象;
  • 基于智能標(biāo)簽,對大型數(shù)據(jù)集進(jìn)行切片、花式索引、子集分解等操作;
  • 直觀地合并(merge)、連接(join)數(shù)據(jù)集;
  • 靈活地重塑(reshape)、透視(pivot)數(shù)據(jù)集;
  • 軸支持結(jié)構(gòu)化標(biāo)簽:一個(gè)刻度支持多個(gè)標(biāo)簽;
  • 成熟的IO工具:讀取文本文件(csv)、Excel文件、數(shù)據(jù)庫等來源的數(shù)據(jù),利用超快的HDF5格式保存、加載數(shù)據(jù);
  • 時(shí)間序列:支持日期范圍生成、頻率轉(zhuǎn)換、移動(dòng)窗口統(tǒng)計(jì)、移動(dòng)窗口線性回歸、日期位移等時(shí)間序列功能。

?

一、文件讀取與寫入

1.讀取與寫入

常見的文件格式有csv、txt、xls、xlsx格式

#讀取csv df = pd.read_csv('data/table.csv') #讀取txt df_txt = pd.read_table('data/table.txt') #可設(shè)置sep分隔符參數(shù) #讀取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')

二、基本數(shù)據(jù)結(jié)構(gòu)

Pandas的兩種數(shù)據(jù)類型:Series是帶標(biāo)簽的一維數(shù)組,可存儲整數(shù)、浮點(diǎn)數(shù)、字符串、Python對象等類型的數(shù)據(jù)。軸標(biāo)簽統(tǒng)稱為索引,Data是由多種類型的列構(gòu)成的二維標(biāo)簽數(shù)據(jù)結(jié)構(gòu),支持一維和多維數(shù)據(jù)輸入,還可以有選擇人地傳遞index和columns參數(shù)。

1.Series

對于一個(gè)Series,常用的屬性為值(values),索引(index),名字(name),類型(dtype)

s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='這是一個(gè)Series',dtype='float64') print(s.name) print(s.values) print(s.index) print(s.dtype)

2.DataFrame

創(chuàng)建一個(gè)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 #由于索引對齊,因此結(jié)果不是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')#直接增加列(以索引為準(zhǔn)) df1['B']=list('abc') #用assign,不會對原DataFrame修改 df1.assign(C=pd.Series(list('def')))

三、常用基本函數(shù)

1、head和tail

head是默認(rèn)展示df的前5行,可通過head(10)展示第十行

tail是默認(rèn)展示df的后5行,可通過tail(10)展示第十行

2.nunique和unique

nunique顯示有多少個(gè)唯一值

unique顯示所有的唯一值

3.count和value_counts

count返回非缺失值元素個(gè)數(shù)

value_counts返回每個(gè)元素有多少個(gè)

4.describe和info

describe默認(rèn)統(tǒng)計(jì)數(shù)值型數(shù)據(jù)的各個(gè)統(tǒng)計(jì)量,可以自行選擇分位數(shù)

info函數(shù)返回有那些列,有多少非缺失值、每列的類型

5.idxmax和nlargest

idxmax函數(shù)返回最大值所在索引,在某些情況下特別適用,idxmin功能類似?

nlargest函數(shù)返回前幾個(gè)大的元素值,nsmallest功能類似

6.clip和replace

clip是對超過或者低于某些值的數(shù)進(jìn)行截?cái)?/p>

replace是對某些值進(jìn)行替換?

7.apply函數(shù)

df['Math'].apply(lambda x:str(x)+'!').head() #可以使用lambda表達(dá)式,也可以使用函數(shù)df.apply(lambda x:x.apply(lambda x:str(x)+'!')).head() #這是一個(gè)稍顯復(fù)雜的例子,有利于理解apply的功能

四、排序

1.索引排序

df.set_index('Math').head() #set_index函數(shù)可以設(shè)置索引 df.set_index('Math').sort_index().head() #可以設(shè)置ascending參數(shù),默認(rèn)為升序,True

2.值排序

#單值排序 df.sort_values(by='Class').head() df.sort_values(by=['Address','Height']).head()

練習(xí):

?

總結(jié)

以上是生活随笔為你收集整理的Datawhale组队-pandas(上)基础(自学)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。