導航:首頁 > 編程語言 > pythoniloc取數據

pythoniloc取數據

發布時間:2022-12-09 00:59:36

『壹』 python—padas(DataFrame)的常用操作

我們先說一下DataFrame是什麼:

1、DataFrame是一種數據框結構,相當於是一個矩陣形式,單元格可以存放數值、字元串等,這和excel表很像;

2、DataFrame是有 行(index)和 列(columns)可以設置的;

有了示例,我們就能明白創建時需要傳入數據,指定index(行索引名)和columns(列名);

在我們需要將單個元素的字典直接轉為DataFrame時,程序會報錯,需要適當做些轉換,指定行索引或者列索引才行;

在增加列的時候我們用到了一個索引loc,後面我們再詳細對loc進行說明,此處先知道可以這樣使用。

文本字元串數據處理之前,一定要先轉為字元(.str)再進行處理

loc 和 iloc如果容易記混,你就取巧記憶,index是索引

所以iloc則是依據位置索引進行取數,沒有i的則是按照名稱進行提取數據

原諒我很懶,比較喜歡這樣框架式的筆記,所以文字就會比較少(#^.^#)!!!

『貳』 Python 基本操作- 數據選取loc、iloc、ix函數

loc中的數據是列名,是字元串,所以前後都要取;iloc中數據是int整型,所以是Python默認的前閉後開

構建數據集df

loc函數主要通過行標簽索引行數據 ,劃重點, 標簽!標簽!標簽!
loc[1] 選擇行標簽是1的(從0、1、2、3這幾個行標簽中)

loc[0:1] 和 loc[0,1]的區別,其實最重要的是loc[0:1]和iloc[0:1]

索引某一列數據,loc[:,0:1],還是標簽,注意,如果列標簽是個字元,比如'a',loc['a']是不行的,必須為loc[:,'a']。
但如果行標簽是'a',選取這一行,用loc['a']是可以的。

iloc 主要是通過行號獲取行數據,劃重點,序號!序號!序號!
iloc[0:1],由於Python默認是前閉後開,所以,這個選擇的只有第一行!

如果想用標簽索引,如iloc['a'],就會報錯,它只支持int型。

ix——結合前兩種的混合索引,即可以是行序號,也可以是行標簽。

如選擇prize>10(prize為一個標簽)的,即 df.loc[df.prize>10]
還有&並或等操作

python選取特定列——pandas的iloc和loc以及icol使用

pandas入門——loc與iloc函數

pandas中loc、iloc、ix的區別

pandas基礎之按行取數(DataFrame)

『叄』 python里怎麼取前兩列

python中獲得前兩列的方式有很多,需要看是哪一種數據類型。

獲取Dataframe對象的前兩列
import pandas as pd
可以通過dataframe類型的iloc方法獲取前兩列,df.iloc[:,0:2]
獲取numpy對象的前兩列
import numpy as np
a =np.zero(3,3)
print(a[:,0:2])

『肆』 Python Pandas 依據標簽或者位置選取特定行列 loc和iloc兩種方式

Pandas中有兩種方式可以進行特定行列的選取,一種是在知道每一列的名稱(label)的情況下(df.loc),一種是在只知道列的位置(integer-location)的情況下(df.iloc)。

可以看出,上述的冒號(:)意味著選取所有的行,所以只需在此處進行改動即可選取特定行(前開後閉)

同樣在選取特定行的時候,依然存在基於label或者是基於integer-location的選擇

選取行採用df.iloc方式,具體如下

除此之外,在採用非標簽的方式選擇的時候,可以通過輸入布爾型變數進行篩選,比如 df.iloc[[True, False, True]] ,或者是 df.iloc[lambda x: x.index % 2 == 0]

完結撒花,反正知道了df.loc和df.iloc的差別之後自由組合就好了~

參考資料: https://pandas.pydata.org/pandas-docs/stable/reference/frame.html#indexing-iteration

『伍』 python pandas -->loc、iloc用法

基礎數據如下:

1.1.1、通過行名稱獲取整行數據:

1.1.2、通過行名稱,列名稱定位數據:

1.1.3、通過切片行標簽和單個標簽列,獲取一組數據:

1.1.4、通過條件篩選數據:

二、iloc :通過整數位置獲得行和列的數據。
(主要是通過行號獲取行數據,劃重點,序號!序號!序號!
iloc[0:1],由於Python默認是前閉後開,所以,這個選擇的只有第一行!)

『陸』 怎樣用 Python 進行數據分析

做數據分析,首先你要知道有哪些數據分析的方法,然後才是用Python去調用這些方法
那Python有哪些庫類是能做數據分析的,很多,pandas,sklearn等等
所以你首先要裝一個anaconda套件,它包含了幾乎所有的Python數據分析工具,
之後再學怎麼分析。

『柒』 pandas索引取數

註:《利用python進行數據分析》的學習筆記-pandas

import pandas as pd

import numpy as np

一維數組,包含一個數組對象,一個索引對象,索引對象默認為0開始的遞增數字,可通過index=[idx1, idx2, ...]參數指定

可通過索引選取/修改相應的數據,選取:data=series[idx], 修改:series[[idxm, idxn, ...]]=[dm, dn, ...]

series可看成定長有序字典,索引到數據的映射,series可用於字典參數的函數中。idxn in series返回True/False

多個series做算術操作,會自動對齊不同索引的數據,無此數據自動填充NaN

可看作多個series組成的表單,dataframe有兩種索引,與series相同的index行索引,還有columns列索引

選取/修改一行數據    dataframe.loc['index']

選取/修改一列數據    dataframe['column'], dataframe.column

obj.reindex(newIndex)                                                                                                    #適用於series與dataframe

obj.reindex(index=newIndex, columns=newcolumns)                                                    #dataframe需對行索引列索引都重新索引時

obj.reindex(index=newindex, columns=newcolumns, fill_value=100)                            #指定填充值,不指定時填充NaN

obj.reindex(index=newindex, columns=newcolumns, fill_value=100, method='ffill')      #指定填充方法ffill/pad(前向填充),bfill/backfill(後向填充)

obj=obj.drop(index, axis=0)

obj=obj.drop([col1, col2, ...], axis=1)

axis默認為0,刪除列數據時指定axis為1

series

obj = pd.Series(range(5), index=list('abcde'))

取單數            obj[2],      obj['c']

切片取數        obj[2:5],    obj['a':'c']

不連續取數    obj[1,3],    obj['a','c','d']

過濾               obj[obj>2],

修改               obj[3]=0,

註:series切片不用於python數據結構的切片,series的切片包含末端,即python:[start, end), series:[start, end]

dataframe

obj = pd.DataFrame(np.arange(15).reshape((3,5)),

                        index = ['one', 'two', 'three'],

                        columns = list('abcde') )

取單列             obj.loc[:, 'c'],                             obj.iloc[:, 2],                            obj.xs('c', axis=1),                       obj['c'], 

取單行             obj.loc['one'],                            obj.iloc[1],                               obj.xs('one', axis=0), 

取連續行         obj.loc['one':'three'],                  obj.iloc[1:3],                obj[:2], 

取連續列         obj.loc[:, 'b':'d'],                         obj.iloc[:, 2:4],

取不連續行     obj.loc[['one','three']]                 obj.iloc[[0,2]],

取不連續列     obj.loc[:, ['b', 'e']]                       obj.iloc[:, [1,4]],

取單行單列     obj.loc['two', 'd']                         obj.iloc[2, 4]

取連續行列     obj.loc['one':'three', 'b':'d']          obj.iloc[:2, 2:4]

取不連續行列  obj.loc[['one','three'], ['b':'d']]     obj.iloc[[0,2], [1,4]]

根據列值過濾行      obj.loc[obj['c']%2==0, :]      

******此處吐個槽,這個切片方法一會兒只能取單列,一會兒只能取連續行,一會兒包含終止項,一會兒不包含,我人都傻了...

******loc/iloc方法接收兩個參數,第一個是行,第二個是列,都可切片,也都可指定索引,列參數可以不寫,默認取所有列數據

******下面總結下這個花哨的切片!

dataframe有兩種索引,行索引/列索引。每種索引包含兩類用法,索引名稱(對應df.loc)/索引下標對應(df.iloc)

①    df[columnName]                                             取單列數據,只能用列名,不能使用列下標,不能用於取單行

②    df[lineName1: lineName2]                              取連續行數據,使用行名時,包含末尾項,即[start,end]

③    df[lineIndex1: lineIndex2]                                取連續行數據,使用行下標時,不包含末尾項 ,即[start,end)

④    df.loc['line2':'line4']                                          取連續行數據,使用行名時,包含末尾項,即[start,end]      

⑤    df.iloc[2:4]                                                       取連續行數據,使用行下標時,不包含末尾項 ,即[start,end) 

⑥    df.loc[:, columnName1:columnName2]          取連續列,使用列名時,包含末尾項,即[start,end]    

⑦    df.iloc[:, columnIndex1:columnIndex2]           取連續列,使用列下標時,不包含末尾項,即[start,end)

⑧    df.loc[[lineName1, ...], [columnName1, ...]]    使用行名/列名取不連續行列

⑨    df.iloc[[lineIndex1, ...], [columnIndex1, ...]]     使用行下標/列下標取不連續行列

以前用的時候總覺得奇奇怪怪的,花了一下午時間一個一個嘗試終於捋順了,歐耶! (〃 ̄︶ ̄) 人 ( ̄︶ ̄〃)

DataFrame直接切片,即df[args],可用於指定列名取單列數據,可用於指定行名/行下標取連續多行數據

                                                        取單行數據不可直接切片,需使用loc/iloc方法

DataFrame.loc(line, column)    用於按索引名稱取行/列數據,此時,首尾項都會被取出

                                                 參數line指定行索引名稱,參數2指定列索引名稱(可省略,默認選取所有列)。

DataFrame.iloc(line, column)   用於按索引下標取行/列數據,此時,尾項數據不會被取出

                                                 參數line指定行索引下標,參數2指定列索引下標(可省略,默認選取所有列)。

『捌』 python做數據分析主要干哪些事情

第一、檢查數據表
Python中使用shape函數來查看數據表的維度,也就是行數以及列數。你可以使用info函數來查看數據表的整體信息,使用dtype函數來返回數據格式;lsnull是Python中檢驗空值的函數,可以對整個數據表進行檢查,也可以單獨對某一行進行空值檢查,返回的結構是邏輯值,包含空值返回true,不包含則返回false。
第二、數據清洗
Python可以進行數據清洗,Python中處理空值的方法比較靈活,可以使用Dropna函數用來刪除數據表中包含空值的數據,也可以使用fillna函數對空值進行填充;Python中dtype是查看數據格式的函數,與之對應的是astype函數,用來更改數據格式,Rename是更改列名稱的函數,drop_plicates函數刪除重復值,replace函數實現數據替換。
第三、數據提取
進行數據提取時,主要使用三個函數:loc、iloc以及ix。Loc函數按標簽進行提取,iloc按位置進行提取,ix可以同時按照標簽和位置進行提取。除了按標簽和位置提取數據之外,還可以按照具體的條件進行提取,比如使用loc和isin兩個函數配合使用。
第四、數據篩選
Python數據分析還可以進行數據篩選,Python中使用loc函數配合篩選條件來完成篩選功能,配合sum和count函數還能實現Excel中sumif和countif函數的功能。使用的主要函數是groupby和pivot_table;groupby是進行分類匯總的函數,使用方法比較簡單,groupby按列名稱出現的順序進行分組。

『玖』 Panadas 中利用DataFrame對象的.loc[,]、.iloc[,]方法抽取數據

pandas的DataFrame對象,本質上是 二維矩陣 ,跟常規二維矩陣的差別在於前者額外指定了每一行和每一列的 名稱 。這樣內部數據抽取既可以用「 行列名稱(對應.loc[]方法) 」,也可以用「矩陣下標( 對應.iloc[]方法 )」兩種方式進行。
下面具體說明:
(以下程序均在Jupyter notebook中進行,部分語句的print()函數省略)
首先生成一個DataFrame對象:

DataFrame對象生成時除了必須指定data參數外,用戶還可以指定兩個參數columns(列名)和index(行名,注意這里的index不僅可以是數字,也可以是用戶指定的任何數據類型,如字母), 如果不指定,則行列名默認都採用0、1、2……
下圖說明了前面的情況:

.loc[行標簽名/[行標簽名list],列標簽名/[列標簽名list]],即有兩個輸入參數,第一個指定行名,第二個指定列名。當只有一個參數時,默認是行名(即抽取整行),所有列都選中。

.loc[行位置/[行位置list],列位置/[列位置list]],也有兩個輸入參數,第一個指定行位置,第二個指定列位置。當只有一個參數時,默認是行位置(即抽取整行),所有列都選中。

上述.loc[]和.iloc[]都只接收了1個參數「語文」或者「0」,因此默認都表示行信息,而列則全部被選中,即抽取'語文'這整一行數據。','表示將兩個參數隔開(如果有兩個參數的話),':'這里表示選擇中所有列。當只有一個輸入參數時,python默認','和':'既可寫上也可省略。注意:參數['語文']或[0]中只有一個對象時(即只有一行),[]也可以省略,如果有多個對象(即多行)則必須加上[]。此外還需注意,加上[]表示抽取的結果無論是一個數據,一行數據,還是一列數據,他都是DataFrame對象;不加[]時,如果選中的是一行或者一列數據,則是Series對象,如果是一個單獨的數據,則是該數據本身的類型。

例2和例1唯一的差別是,第一個參數指定了多行一起輸出,此時必須用[]將各行名或者下標括起來,否則出錯。後面的','和':'同例1,可省略。注意:原始數據的行順序是:語文、數學、英語、政治,這里的提取順序是['英語','語文','政治'],而輸出也是'英語','語文','政治',可見輸出順序和參數指定順序是一致的,而非按原始順序輸出。

例3依然是接受1個參數,列參數沒有,後面的','和':'同例1,可省略。連續參數用『start:end』的方式指定行范圍。注意:這里不能用[]將其括起來,否則出錯。此外用行列名連續取值時,比如['語文':'政治']會把'政治'所在行也取出來,而利用矩陣下標時,0:3隻取0,1,2對應的三行,最後一行不會取出;但是如果行列標簽名本身就是整數0,1,2……,而不是文字或者其他類型,那麼在使用連續行列標簽名取數據時,最後一行或者列是不會被取出的。

抽取整列的方式跟抽取整行在參數設置上完全一樣。.loc[]和.iloc[]兩個方法默認列為第二個參數, 因此抽取整列時,都必須帶上':,'作為區分前面行參數的『分隔符』,否則出錯

同時抽取分部行和列的情況,就是把上述單獨抽取行和列的方式合並起來用。抽取整個DataFrame對象則是.loc[:,:]或.iloc[:,:],雖然這么做沒啥意義。

(1)DataFrame對象的.loc[,]和.iloc[,]方法用於抽取數據,.loc[,]用行列的標簽名作為參數,.iloc[,]用二維矩陣元素的網格下標作為參數。
(2)兩個方法都接受兩個參數,第一個是「行標簽」或者「矩陣行號」,第二個是「列標簽」或者「矩陣列號」。
(3)兩種方法當只指定一個輸入參數時,都默是跟「行」相關,而「列」則全部被選中。如何行和列都需要指定時,中間用「逗號,」隔開,這非常重要,否則出錯。
(4)當需要選中所有行的某幾列時,行參數可以省略,列參數需要指定,此時列參數前面必須帶上「,:」,形如.loc[:,列參數],.iloc[:,列參數]。
(5).loc[,]和.iloc[,]設置了一個還是兩個輸入參數,關鍵看有沒有「,」將兩個參數分開,且要區分逗號是一個參數的內部逗號,還有用於分隔行列參數的逗號。
(6)對於兩個參數的概念區分,.loc['語文','數學']這表示輸入了兩個參數,行參數是『語文』,列參數是『數學』,對於上面的表格而言這是錯的,因為沒有叫『數學』的列,應寫為[['語文','數學']],即『數學』也是行參數的一部分,['語文','數學']整體作為一個行參數,這里的逗號不是用以分隔行和列,僅僅是行list裡面的逗號。[['語文','數學']]=[['語文','數學'],]=[['語文','數學'],:],都表示只有一個行參數,列全部選中。

『拾』 python:pandas之DataFrame取行列(df.loc(),df.iloc())以及索引

1、pandas排序,並取前N列數據

2、取行、取列DataFrame.loc,DataFrame.iloc
-取行DataFrame.loc,DataFrame.iloc

閱讀全文

與pythoniloc取數據相關的資料

熱點內容
腳本提取源碼器 瀏覽:928
smo源碼 瀏覽:875
為什麼要搭建單獨伺服器 瀏覽:478
編譯器有什麼控制 瀏覽:891
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:645
解密塔羅牌小程序源碼 瀏覽:862
聚合跑分源碼 瀏覽:553
注冊dns伺服器寫什麼 瀏覽:879
linux安裝deb包 瀏覽:521
電腦盤文件夾如何平鋪 瀏覽:267
相機卡滿了沒文件夾 瀏覽:751
如何批量快速壓縮視頻 瀏覽:432
我的世界如何加入ice伺服器 瀏覽:873
兄弟cnc編程說明書 瀏覽:204
php閃電入門教程學習 瀏覽:152
金岳霖邏輯pdf 瀏覽:938
linuxtomcat線程 瀏覽:77
pboc長度加數據加密 瀏覽:188
英雄聯盟國際服手游怎麼下安卓 瀏覽:299