Pandas的介紹與基本使用

2021-01-15 做一個編程俗人

1、什麼是Pandas

當大家談論到數據分析時,提及最多的語言就是Python和SQL,而Python之所以適合做數據分析,就是因為他有很多強大的第三方庫來協助,pandas就是其中之一,它是基於Numpy構建的,正因pandas的出現,讓Python語言也成為使用最廣泛而且強大的數據分析環境之一。如果說沒有pandas的出現,目前的金融數據分析領域還應該是R語言的天下。

2、Pandas能幹什麼

Pandas的主要功能:

具備對應其功能的數據結構DataFrame,Series集成時間序列功能提供豐富的數學運算和操作靈活處理缺失數據.....以上就是pandas能完成的一些基礎操作,當然並不完全,下面就來看看pandas到底是怎麼用的。

3、怎麼用Pandas

安裝方法:

pip install pandas

引用方法:

import pandas as pd

3.1、Series

Series是一種類似於一維數組的對象,由一組數據和一組與之相關的數據標籤(索引)組成。在數據分析的過程中非常常用。

3.1.1、創建方法

第一種:pd.Series([4,5,6,7,8])執行結果:0 41 52 63 74 8dtype: int64# 將數組索引以及數組的值列印出來,索引在左,值在右,由於沒有為數據指定索引,於是會自動創建一個0到N-1(N為數據的長度)的整數型索引,取值的時候可以通過索引取值,跟之前學過的數組和列表一樣--第二種:pd.Series([4,5,6,7,8],index=['a','b','c','d','e'])執行結果:a 4b 5c 6d 7e 8dtype: int64# 自定義索引,index是一個索引列表,裡面包含的是字符串,依然可以通過默認索引取值。--第三種:pd.Series({"a":1,"b":2})執行結果:a 1b 2dtype: int64# 指定索引--第四種:pd.Series(0,index=['a','b','c'])執行結果:a 0b 0c 0dtype: int64# 創建一個值都是0的數組--對於Series,其實我們可以認為它是一個長度固定且有序的字典,因為它的索引和數據是按位置進行匹配的,像我們會使用字典的上下文,就肯定也會使用Series

3.1.2、缺失數據

dropna() # 過濾掉值為NaN的行fillna() # 填充缺失數據isnull() # 返回布爾數組,缺失值對應為Truenotnull() # 返回布爾數組,缺失值對應為False# 第一步,創建一個字典,通過Series方式創建一個Series對象st = {"sean":18,"yang":19,"bella":20,"cloud":21}obj = pd.Series(st)obj運行結果:sean 18yang 19bella 20cloud 21dtype: int64--# 第二步a = {'sean','yang','cloud','rocky'} # 定義一個索引變量--#第三步obj1 = pd.Series(st,index=a)obj1 # 將第二步定義的a變量作為索引傳入# 運行結果:rocky NaNcloud 21.0sean 18.0yang 19.0dtype: float64# 因為rocky沒有出現在st的鍵中,所以返回的是缺失值通過上面的代碼演示,對於缺失值已經有了一個簡單的了解,接下來就來看看如何判斷缺失值

1、obj1.isnull() # 是缺失值返回Ture運行結果:rocky Truecloud Falsesean Falseyang Falsedtype: bool2、obj1.notnull() # 不是缺失值返回Ture運行結果:rocky Falsecloud Truesean Trueyang Truedtype: bool3、過濾缺失值 # 布爾型索引obj1[obj1.notnull()]運行結果:cloud 21.0yang 19.0sean 18.0dtype: float643.1.3、Series特性

import numpy as npimport pandas as pd從ndarray創建Series:Series(arr)arr = np.arange(10)sr = pd.Series(arr) # ndarray創建Series與標量(數字)進行運算:sr * 2srx = sr * 2 # 與標量(數字)進行運算兩個Series運算sr * srx # 兩個Series運算布爾值過濾:sr[sr>0]sr[sr>3] # 布爾值過濾統計函數:mean()、sum()、cumsum()# 統計函數sr.mean()sr.sum()sr.cumsum()3.1.4、支持字典的特性

從字典創建Series:Series(dic),dic = {"A":1,"B":2,"C":3,"D":4,"E":5}# 字典創建Seriesdic_arr = pd.Series(dic) In運算:'a'in sr、for x in sr"A" in dic_arrfor i in dic_arr: print(i)鍵索引:sr['a'],sr[['a','b','d']]dic_arr[['A','B']] # 鍵索引鍵切片:sr['a':'c']dic_arr['A':'C'] # 鍵切片其他函數:get('a',default=0)等dic_arr.get("A",default=0) 3.1.5、整數索引

pandas當中的整數索引對象可能會讓初次接觸它的人很懵逼,接下來通過代碼演示:

sr = pd.Series(np.arange(10))sr1 = sr[3:].copy()sr1運行結果:3 34 45 56 67 78 89 9dtype: int32# 到這裡會發現很正常,一點問題都沒有,可是當使用整數索引取值的時候就會出現問題了。因為在pandas當中使用整數索引取值是優先以標籤解釋的,而不是下標sr1[1]解決方法:

loc屬性 # 以標籤解釋iloc屬性 # 以下標解釋sr1.iloc[1] # 以下標解釋sr1.loc[3] # 以標籤解釋3.1.6、Series數據對齊

pandas在運算時,會按索引進行對齊然後計算。如果存在不同的索引,則結果的索引是兩個操作數索引的併集。

sr1 = pd.Series([12,23,34], index=['c','a','d'])sr2 = pd.Series([11,20,10], index=['d','c','a',])sr1 + sr2運行結果:a 33c 32d 45dtype: int64# 可以通過這種索引對齊直接將兩個Series對象進行運算sr3 = pd.Series([11,20,10,14], index=['d','c','a','b'])sr1 + sr3運行結果:a 33.0b NaNc 32.0d 45.0dtype: float64# sr1 和 sr3的索引不一致,所以最終的運行會發現b索引對應的值無法運算,就返回了NaN,一個缺失值將兩個Series對象相加時將缺失值設為0:

sr1 = pd.Series([12,23,34], index=['c','a','d'])sr3 = pd.Series([11,20,10,14], index=['d','c','a','b'])sr1.add(sr3,fill_value=0)運行結果:a 33.0b 14.0c 32.0d 45.0dtype: float64# 將缺失值設為0,所以最後算出來b索引對應的結果為14靈活的算術方法:add,sub,div,mul

到這裡可能就會說了pandas就這麼簡單嗎,那我們接下來一起看看這個二維數組DataFraeme

3.2、DataFrame

DataFrame是一個表格型的數據結構,相當於是一個二維數組,含有一組有序的列。他可以被看做是由Series組成的字典,並且共用一個索引。接下來就一起來見識見識DataFrame數組的厲害吧!!!

3.2.1、創建方式

創建一個DataFrame數組可以有多種方式,其中最為常用的方式就是利用包含等長度列表或Numpy數組的字典來形成DataFrame:

第一種:pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})# 產生的DataFrame會自動為Series分配所索引,並且列會按照排序的順序排列運行結果: one two0 1 41 2 32 3 23 4 1> 指定列可以通過columns參數指定順序排列data = pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})pd.DataFrame(data,columns=['one','two'])# 列印結果會按照columns參數指定順序第二種:pd.DataFrame({'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([1,2,3],index=['b','a','c'])})運行結果: one twoa 1 2b 2 1c 3 3以上創建方法簡單了解就可以,因為在實際應用當中更多是讀數據,不需要自己手動創建

3.2.2、查看數據

常用屬性和方法:

index 獲取行索引columns 獲取列索引T 轉置values 獲取值索引describe 獲取快速統計 one twoa 1 2b 2 1c 3 3# 這樣一個數組dfdf.index> Index(['a', 'b', 'c'], dtype='object')df.columns> Index(['one', 'two'], dtype='object')----df.T> a b cone 1 2 3two 2 1 3---df.values> array([[1, 2], [2, 1], [3, 3]], dtype=int64)--df.describe()> one twocount 3.0 3.0 # 數據統計mean 2.0 2.0 # 平均值std 1.0 1.0 # 標準差min 1.0 1.0 # 最小值25% 1.5 1.5 # 四分之一均值50% 2.0 2.0 # 二分之一均值75% 2.5 2.5 # 四分之三均值max 3.0 3.0 # 最大值3.2.3、索引和切片

DataFrame有行索引和列索引。DataFrame同樣可以通過標籤和位置兩種方法進行索引和切片。DataFrame使用索引切片:

方法1:兩個中括號,無論是先取行還是先取列都可以。import tushare as tsdata = ts.get_k_data("000001")data['open'][:10] # 先取列再取行data[:10]['open'] # 先取行再取列方法2(推薦):使用loc/iloc屬性,一個中括號,逗號隔開,先取行再取列。loc屬性:解釋為標籤iloc屬性:解釋為下標data.loc[:10,"open":"low"] # 用標籤取值data.iloc[:10,1:5] # 用下標取值向DataFrame對象中寫入值時只使用方法2行/列索引部分可以是常規索引、切片、布爾值索引、花式索引任意搭配。(注意:兩部分都是花式索引時結果可能與預料的不同)3.3、時間對象處理

處理時間對象可能是我們在進行數據分析的過程當中最常見的,我們會遇到各種格式的時間序列,也需要處理各種格式的時間序列,但是一定不能對這些數據懵逼,我們需要找到最合適的招式來處理這些時間。接下來就一起來看吧!!!

3.3.1、時間序列類型

時間戳:特定時刻固定時期:如2019年1月時間間隔:起始時間-結束時間3.3.2、Python庫:datatime

date、datetime、timedeltaimport datetime# datetime.date() # date對象today = datetime.date.today() # 獲取當天日期,返回date對象t1 = datetime.date(2019,4,18) # 設置時間格式為datetime.date# datetime.datetime() # datetime對象now = datetime.datetime.now() # 獲取當天日期,返回datetime對象t2 = datetime.datetime(2019,4,18) # 設置時間格式為datetime.datetime# datetime.timedelta() # 時間差today = datetime.datetime.today()yestoday = today - datetime.timedelta(1) # 以時間做運算print(today,yestoday)dt.strftime()# 將時間格式轉換為字符串today.strftime("%Y-%m-%d")yestoday.strftime("%Y-%m-%d")strptime()# 將日期字符串轉成datetime時間格式,第二個參數由時間格式決定datetime.datetime.strptime('2019-04-18','%Y-%m-%d')3.3.3、靈活處理時間對象:dateutil包

dateutil.parser.parse()import dateutil# 將字符串格式的日期轉換為datetime對象date = '2019 Jan 2nd't3 = dateutil.parser.parse(date)3.3.4、成組處理時間對象:pandas

pd.to_datetime(['2018-01-01', '2019-02-02'])將字符串轉換為為時間對象

from datetime import datetimeimport pandas as pddate1 = datetime(2019, 4, 18, 12, 24, 30)date2 = '2019-04-18't4 = pd.to_datetime(date1)t5 = pd.to_datetime(date2)t6 = pd.to_datetime([date1,date2])t4,t5,t6 # 轉換單個時間數據是返回Timestamp對象,轉換多個時間數據返回DatetimeIndex對象> """(Timestamp('2019-04-18 12:24:30'), Timestamp('2019-04-18 00:00:00'), DatetimeIndex(['2019-04-18 12:24:30', '2019-04-18 00:00:00'], dtype='datetime64[ns]', freq=None))"""將索引設置為時間序列

ind = pd.to_datetime(['2018-03-01','2019 Feb 3','08/12-/019'])sr = pd.Series([1,2,3],index=ind)# 補充:"""pd.to_datetime(['2018-03-01','2019 Feb 3','08/12-/019']).to_pydatetime()> array([datetime.datetime(2018, 3, 1, 0, 0), datetime.datetime(2019, 2, 3, 0, 0), datetime.datetime(2019, 8, 12, 0, 0)], dtype=object)# 通過to_pydatetime()方法將其轉換為ndarray數組"""3.3.5、產生時間對象數組:data_range

start 開始時間end 結束時間periods 時間長度freq 時間頻率,默認為'D',可選H(our),W(eek),B(usiness),S(emi-)M(onth),(min)T(es), S(econd), A(year),…pd.date_range("2019-1-1","2019-2-2",freq="D")> DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04', '2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08', '2019-01-09', '2019-01-10', '2019-01-11', '2019-01-12', '2019-01-13', '2019-01-14', '2019-01-15', '2019-01-16', '2019-01-17', '2019-01-18', '2019-01-19', '2019-01-20', '2019-01-21', '2019-01-22', '2019-01-23', '2019-01-24', '2019-01-25', '2019-01-26', '2019-01-27', '2019-01-28', '2019-01-29', '2019-01-30', '2019-01-31', '2019-02-01', '2019-02-02'], dtype='datetime64[ns]', freq='D')3.3.6、時間序列

時間序列就是以時間對象為索引的Series或DataFrame。datetime對象作為索引時是存儲在DatetimeIndex對象中的。

# 轉換時間索引dt = pd.date_range("2019-01-01","2019-02-02")# 生成一個帶有時間數據的DataFrame數組a = pd.DataFrame({"num":pd.Series(random.randint(-100,100) for _ in range(30)),"date":dt})# 通過index修改索引a.index = pd.to_datetime(a["date"])特殊功能:

傳入「年」或「年月」作為切片方式傳入日期範圍作為切片方式豐富的函數支持:resample(), strftime(), ……a.resample("3D").mean() # 計算每三天的均值a.resample("3D").sum() # 計算每三天的和...時間序列的處理在數據分析當中非常重要,但是有時候時間的格式不一致又會讓人非常煩躁,只要把以上秘籍都學會就可以把時間序列製得服服帖帖。

3.4、數據分組和聚合

在數據分析當中,我們有時需要將數據拆分,然後在每一個特定的組裡進行運算,這些操作通常也是數據分析工作中的重要環節。分組聚合相對來說也是一個稍微難理解的點,需要各位有一定的功力來學習.

3.4.1、分組(GroupBY機制)

pandas對象(無論Series、DataFrame還是其他的什麼)當中的數據會根據提供的一個或者多個鍵被拆分為多組,拆分操作實在對象的特定軸上執行的。就比如DataFrame可以在他的行上或者列上進行分組,然後將一個函數應用到各個分組上並產生一個新的值。最後將所有的執行結果合併到最終的結果對象中。

分組鍵可以是多種樣式,並且鍵不一定是完全相同的類型:

列表或者數組,長度要與待分組的軸一樣表示DataFrame某個列名的值。字典或Series,給出待分組軸上的值與分組名之間的對應關係函數,用於處理軸索引或者索引中的各個標籤後三種只是快捷方式,最終仍然是為了產生一組用於拆分對象的值。

首先,通過一個很簡單的DataFrame數組嘗試一下:

df = pd.DataFrame({'key1':['x','x','y','y','x', 'key2':['one','two','one',',two','one'], 'data1':np.random.randn(5), 'data2':np.random.randn(5)})df > key1 key2 data1 data20 x one 0.951762 1.6323361 x two -0.369843 0.6022612 y one 1.512005 1.3317593 y two 1.383214 1.0256924 x one -0.475737 -1.182826訪問data1,並根據key1調用groupby:

f1 = df['data1'].groupby(df['key1'])f1> 上述運行是沒有進行任何計算的,但是我們想要的中間數據已經拿到了,接下來,就可以調用groupby進行任何計算

f1.mean() # 調用mean函數求出平均值> key1 x 0.106183 y 2.895220 Name: data1, dtype: float64以上數據經過分組鍵(一個Series數組)進行了聚合,產生了一個新的Series,索引就是key1列中的唯一值。這些索引的名稱就為key1。接下來就嘗試一次將多個數組的列表傳進來

f2 = df['data1'].groupby([df['key1'],df['key2']])f2.mean()> key1 key2 x one 0.083878 two 0.872437 y one -0.665888 two -0.144310 Name: data1, dtype: float64傳入多個數據之後會發現,得到的數據具有一個層次化的索引,key1對應的x\y;key2對應的one\two.

f2.mean().unstack() # 通過unstack方法就可以讓索引不堆疊在一起了> key2 one twokey1 x 0.083878 0.872437y -0.665888 -0.144310補充:

1、分組鍵可以是任意長度的數組2、分組時,對於不是數組數據的列會從結果中排除,例如key1、key2這樣的列3、GroupBy的size方法,返回一個含有分組大小的Series# 以上面的f2測試f2.size()> key1 key2x one 2 two 1y one 1 two 1Name: data1, dtype: int64到這跟著我上面的步驟一步一步的分析,會發現還是很簡單的,但是一定不能幹看,還要自己下手練,只有多練才能融匯貫通!!!

3.4.2、聚合(組內應用某個函數)

聚合是指任何能夠從數組產生標量值的數據轉換過程。剛才上面的操作會發現使用GroupBy並不會直接得到一個顯性的結果,而是一個中間數據,可以通過執行類似mean、count、min等計算得出結果,常見的還有一些:

自定義聚合函數

不僅可以使用這些常用的聚合運算,還可以自己自定義。

# 使用自定義的聚合函數,需要將其傳入aggregate或者agg方法當中def peak_to_peak(arr): return arr.max() - arr.min()f1.aggregate(peak_to_peak)運行結果:key1x 3.378482y 1.951752Name: data1, dtype: float64多函數聚合:

f1.agg(['mean','std'])運行結果: mean stdkey1 x -0.856065 0.554386y -0.412916 0.214939最終得到的列就會以相應的函數命名生成一個DataFrame數組

以上我們是可以通過agg或者是aggregate來實現多函數聚合以及自定義聚合函數,但是一定要注意agg方法只能進行聚合操作,進行其他例如:排序,這些方法是會報錯的。agg返回的是數據的標量,所以有些時候並不適合使用agg,這就要看我們接下來的操作了。

3.4.3、apply

GroupBy當中自由度最高的方法就是apply,它會將待處理的對象拆分為多個片段,然後各個片段分別調用傳入的函數,最後將它們組合到一起。

df.apply(['func', 'axis=0', 'broadcast=None', 'raw=False', 'reduce=None', 'result_type=None', 'args=()', '**kwds']

func:傳入一個自定義函數axis:函數傳入參數當axis=1就會把一行數據作為Series的數據

# 分析歐洲杯和歐洲冠軍聯賽決賽名單import pandas as pdurl="https://en.wikipedia.org/wiki/List_of_European_Cup_and_UEFA_Champions_League_finals"eu_champions=pd.read_html(url) # 獲取數據a1 = eu_champions[2] # 取出決賽名單a1.columns = a1.loc[0] # 使用第一行的數據替換默認的橫向索引a1.drop(0,inplace=True) # 將第一行的數據刪除a1.drop('#',axis=1,inplace=True) # 將以#為列名的那一列刪除a1.columns=['Season', 'Nation', 'Winners', 'Score', 'Runners_up', 'Runners_up_Nation', 'Venue','Attendance'] # 設置列名a1.tail() # 查看後五行數據a1.drop([64,65],inplace=True) # 刪除其中的缺失行以及無用行a1運行結果:

現在想根據分組選出Attendance列中值最高的三個。

# 先自定義一個函數def top(df,n=3,column='Attendance'): return df.sort_values(by=column)[-n:]top(a1,n=3)運行結果:

接下來,就對a1分組並且使用apply調用該函數:

a1.groupby('Nation').apply(top)

運行之後會發現,我們通過這個操作將每個國家各個年份時段出席的人數的前三名進行了一個提取。

以上top函數是在DataFrame的各個片段上調用,然後結果又通過pandas.concat組裝到一起,並且以分組名稱進行了標記。

以上只是基本用法,apply的強大之處就在於傳入函數能做什麼都由自己說了算,它只是返回一個pandas對象或者標量值就行

3.5、其他常用方法

pandas常用方法(適用Series和DataFrame)

mean(axis=0,skipna=False)sum(axis=1)sort_index(axis, …, ascending) # 按行或列索引排序sort_values(by, axis, ascending) # 按值排序apply(func, axis=0) # 將自定義函數應用在各行或者各列上,func可返回標量或者Seriesapplymap(func) # 將函數應用在DataFrame各個元素上map(func) # 將函數應用在Series各個元素上

本文轉載自:https://www.cnblogs.com/guapitomjoy/p/12203147.html,旨在分享技術,整合信息,若有侵權請私信,侵權必刪

相關焦點

  • 在pandas中使用pipe()提升代碼可讀性
    簡介我們在利用pandas開展數據分析時,應儘量避免過於「碎片化」的組織代碼,尤其是創建出過多不必要的「中間變量」,既浪費了「內存」,又帶來了關於變量命名的麻煩,更不利於整體分析過程代碼的可讀性,因此以流水線方式組織代碼非常有必要。
  • PANDAS: 新手教程 一
    我將把這篇文章分成兩篇基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。在開始之前,確保你已經安裝了Pandas。如果沒有,你可以使用以下命令下載它。
  • pandas使用的25個技巧
    /blob/master/top_25_pandas_tricks.ipynb ,翻譯如有不當之處,還請批評指正。查詢pandas版本  如果你還想知道pandas所依賴的模塊的版本,你可以使用show_versions()函數:
  • 使用pandas和openpyxl處理複雜Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • pandas指南:做更高效的數據科學家
    今天我要告訴你們的是:在數據科學中,有一個軟體包是你們絕對需要學習的,那就是pandas。而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。pandas類似於Python中的Excel:它使用表(即DataFrame)並對數據進行轉換,但它還能做更多。
  • 如何使用Pandas-Profiling進行探索性數據分析
    pandas_profiling使用df.profile_report()擴展了DataFrame,以便進行快速數據分析。每一列的以下統計數據(如果與列類型相關)都顯示在交互式HTML報告中:類型推斷:檢測DataFrame中列的類型。
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。pandas是基於NumPy數組構建的,特別是基於數組的函數和不使用for循環的數據處理。雖然pandas採用了大量的NumPy編碼風格,但二者最大的不同是pandas是專門為處理表格和混雜數據設計的。
  • PANDAS: 新手教程 一 - 人工智慧遇見磐創
    我將把這篇文章分成兩篇基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。在開始之前,確保你已經安裝了Pandas。如果沒有,你可以使用以下命令下載它。
  • Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據
    今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。pandas(pannel data analysis,面板數據分析),我個人覺得pandas用於數據分析處理有別於Python字典和列表的主要在於以下三點。運算效率提升,pandas是基於numpy寫的,換句話說也是c語言進行編寫並編譯成本地庫的,在運算效率會高很多。
  • 嫌pandas慢又不想改代碼怎麼辦?來試試Modin
    最近看到了一篇也是關於對pandas提速的文章,但是從另一個角度,工具。使用它可以很好的突破操作優化上的瓶頸,而這個工具就是Modin。Modin存在的意義就是:更改一行代碼來提速pandas工作流程。Pandas在數據科學領域就無需介紹了,它提供高性能,易於使用的數據結構和數據分析工具。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • pandas庫中最重要的幾個知識點
    pandas庫使用比較多的知識點,有任何問題可以在評論區留言或者私信小編。常用函數pandas數據分析中使用比較常見的幾個函數:apply()applymap()map()transform()apply主要作用於DataFrame的某一行或者列上,(1)按行計算(2)按列計算applymap作用在dataframe的每一個元素上transform
  • 如何用pandas更快地進行數據可視化?
    作者:劉早起來源:早起Python(公眾號)如果你經常使用Python進行數據分析,那麼對於pandas一定不會陌生,但是Pandas除了在數據處理上大放異彩,隨著版本的不斷更新,Pandas的繪圖功能在某些情況下甚至要比matplotlib更加適用,本文就將介紹如何用
  • 使用Pandas的resample函數處理時間序列數據的技巧
    在本文中,我們將介紹一些使用Pandas resample()函數對時間序列數據進行重採樣的示例。 我們將介紹以下常見問題,並應幫助您開始使用時序數據操作。下採樣並執行聚合使用自定義基數進行下採樣上採樣和填充值一個實際的例子向下採樣和執行聚合下採樣是將一個時間序列數據集重新採樣到一個更大的時間框架。例如,從幾分鐘到幾小時,從幾天到幾年。
  • 如何用Pandas庫實現MySQL資料庫的讀寫?
    本次分享將介紹如何在Python中使用Pandas庫實現MySQL資料庫的讀寫。首先我們需要了解點ORM方面的知識。可以使用pip命令安裝SQLAlchemy模塊:  '資料庫類型+資料庫驅動名稱://用戶名:口令@機器地址:埠號/資料庫名'  Pandas讀寫MySQL資料庫  我們需要以下三個庫來實現Pandas讀寫MySQL資料庫:  pandas  sqlalchemy
  • pandas基礎教程2
    選擇數據:我們在前面說pandas就像字典一樣,字典是可以通過鍵去選擇數據,同樣的pandas也是可以得,且pandas更強。DataFrame中的數據有兩個選取方式,df['A']或者df.A都可以,具體使用什麼方式看你的心情。
  • 【跟著stackoverflow學Pandas】- Pandas修改列的類型
    Pandas: change data type of columns - Pandas修改列的類型我們利用pandas進行數據處理經常會遇到數據類型不符的問題
  • 不會Pandas怎麼行
    有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。
  • Python數據分析:pandas讀取和寫入數據
    繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。平時工作中,我們會接觸到不同的數據文件,比如很常見的excel文件(後綴名為xls和xlsx),csv、txt等文本文件,json文件以及sql文件等等。
  • 幾個Pandas參數設置小技巧
    在日常使用pandas的過程中,由於我們所分析的數據表規模、格式上的差異,使得同樣的函數或方法作用在不同數據上的效果存在差異。而pandas有著自己的一套「參數設置系統」,可以幫助我們在遇到不同的數據時靈活調節從而達到最好的效果,本文就將介紹pandas中常用的參數設置方面的知識