loc(location)為Selection by Label函數,即通過標簽(行列索引的具體值)來索引數據,由于loc函數中索引的標簽是str類型,所以標簽的開頭和結尾都要寫。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))
df.loc[0:2,['b','c']]#默認行索引情況下,選取df前三行的b,c兩列
df.loc[:,'a':'c']#選取df的a到c列,c列也包含在內,且單獨的:表示所有行
高級用法:
df.loc[df['b'][(df['b'] > 49)|(df['b'] < 10)].index, 'b'] = np.nan#將b列中所有大于49或小于10的值賦值為null值
df.loc[(df['b'].isnull()), 'b'] = 0#再將b列中所有null值全部賦值為0
df.loc[(df['b'].notnull()), 'b'] = 0#或將b列中所有非null值全部賦值為0
df_a,df_c = df.loc[(df['b'] > 50)|(df['b'] < 10),('a','c')].values[2]#根據b列中的值來選取a,c兩列的值,并將返回結果中的第三行賦值到df_a和df_c中
iloc(integer location)為Selection by Position函數,即通過位置(軸0到軸-1)來索引數據,由于iloc函數中索引的位置是int類型,在選取行列時要注意前閉后開。
df.iloc[0:2,[0,1]]#選取df前兩行的第一和第二列,行序號為2的第三行不包括在內
df.iloc[:,0:3]#選取df的前三列,行序號為3的第四行不包括在內
loc和iloc函數的兩個參數既可以是列表也可以是單個字符(整數),如果兩個參數都為列表則返回的是DataFrame,否則,則為Series。
df.iloc[0:2,[0,1]]#返回對象類型為DataFrame
df.iloc[1,0:2]#返回對象為Series
df.loc[0:1,['b','c']]#返回對象為DataFrame
df.loc[1,'a':'c']#返回對象為Series
df.loc[:,['b','c']]#返回對象為DataFrame
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
