Pandas選取行,列總結(jié)

pandas 數(shù)據(jù)索引與選取

我們對(duì) DataFrame 進(jìn)行選擇有鹿,大抵從這三個(gè)層次考慮:行列旭旭、區(qū)域、單元格印颤。
其對(duì)應(yīng)使用的方法如下:
一. 行您机,列 --> df[]
二. 區(qū)域 --> df.loc[], df.iloc[], df.ix[]
三. 單元格 --> df.at[], df.iat[]

下面開始練習(xí):

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randn(6,4), index=list('abcdef'), columns=list('ABCD'))
  1. df[]:
    一維
    行維度:
    整數(shù)切片、標(biāo)簽切片、<布爾數(shù)組>
    列維度:
    標(biāo)簽索引际看、標(biāo)簽列表咸产、Callable
df[:3]
df['a':'c']
df[[True,True,True,False,False,False]] # 前三行(布爾數(shù)組長(zhǎng)度等于行數(shù))
df[df['A']>0] # A列值大于0的行
df[(df['A']>0) | (df['B']>0)] # A列值大于0,或者B列大于0的行
df[(df['A']>0) & (df['C']>0)] # A列值大于0仲闽,并且C列大于0的行
 

df['A']
df[['A','B']]
df[lambda df: df.columns[0]] # Callable
  1. df.loc[]
    二維脑溢,先行后列
    行維度:
    標(biāo)簽索引、標(biāo)簽切片赖欣、標(biāo)簽列表屑彻、<布爾數(shù)組>、Callable
    列維度:
    標(biāo)簽索引顶吮、標(biāo)簽切片社牲、標(biāo)簽列表、<布爾數(shù)組>悴了、Callable
df.loc['a', :]
df.loc['a':'d', :]
df.loc[['a','b','c'], :]
df.loc[[True,True,True,False,False,False], :] # 前三行(布爾數(shù)組長(zhǎng)度等于行數(shù))
df.loc[df['A']>0, :]
df.loc[df.loc[:,'A']>0, :]
df.loc[df.iloc[:,0]>0, :]
df.loc[lambda _df: _df.A > 0, :]
 

df.loc[:, 'A']
df.loc[:, 'A':'C']
df.loc[:, ['A','B','C']]
df.loc[:, [True,True,True,False]] # 前三列(布爾數(shù)組長(zhǎng)度等于行數(shù))
df.loc[:, df.loc['a']>0]          # a行大于0的列
df.loc[:, df.iloc[0]>0]           # 0行大于0的列
df.loc[:, lambda _df: ['A', 'B']]
 

df.A.loc[lambda s: s > 0]
  1. df.iloc[]
    二維搏恤,先行后列
    行維度:
    整數(shù)索引、整數(shù)切片湃交、整數(shù)列表熟空、<布爾數(shù)組>
    列維度:
    整數(shù)索引、整數(shù)切片搞莺、整數(shù)列表息罗、<布爾數(shù)組>、Callable
df.iloc[3, :]
df.iloc[:3, :]
df.iloc[[0,2,4], :]
df.iloc[[True,True,True,False,False,False], :] # 前三行(布爾數(shù)組長(zhǎng)度等于行數(shù))
df.iloc[df['A']>0, :]       #× 為什么不行呢才沧?想不通迈喉!
df.iloc[df.loc[:,'A']>0, :] #×
df.iloc[df.iloc[:,0]>0, :]  #×
df.iloc[lambda _df: [0, 1], :]
 

df.iloc[:, 1]
df.iloc[:, 0:3]
df.iloc[:, [0,1,2]]
df.iloc[:, [True,True,True,False]] # 前三列(布爾數(shù)組長(zhǎng)度等于行數(shù))
df.iloc[:, df.loc['a']>0] #×
df.iloc[:, df.iloc[0]>0]  #×
df.iloc[:, lambda _df: [0, 1]]
  1. df.ix[]
    二維,先行后列
    行維度:
    整數(shù)索引温圆、整數(shù)切片弊添、整數(shù)列表、
    標(biāo)簽索引捌木、標(biāo)簽切片油坝、標(biāo)簽列表、
    <布爾數(shù)組>刨裆、
    Callable
    列維度:
    整數(shù)索引澈圈、整數(shù)切片、整數(shù)列表帆啃、
    標(biāo)簽索引瞬女、標(biāo)簽切片、標(biāo)簽列表努潘、
    <布爾數(shù)組>诽偷、
    Callable
df.ix[0, :]
df.ix[0:3, :]
df.ix[[0,1,2], :]

df.ix['a', :]
df.ix['a':'d', :]
df.ix[['a','b','c'], :]
 

df.ix[:, 0]
df.ix[:, 0:3]
df.ix[:, [0,1,2]]

df.ix[:, 'A']
df.ix[:, 'A':'C']
df.ix[:, ['A','B','C']]
 

  1. df.at[]
    精確定位單元格
    行維度:
    標(biāo)簽索引
    列維度:
    標(biāo)簽索引
df.at['a', 'A']
  1. df.iat[]
    精確定位單元格

行維度:
整數(shù)索引
列維度:
整數(shù)索引

df.iat[0, 0]

選取某一列

df['A']

選取某一行

df.loc['1']

刪除某一列

pd.drop('Part Number',axis=1)

刪除某兩行

pd.drop([11坤学,12],axis=0)

采用drop方法报慕,有下面三種等價(jià)的表達(dá)式:

  1. DF= DF.drop('column_name', 1)深浮;
  2. DF.drop('column_name',axis=1, inplace=True)
  3. DF.drop([DF.columns[[0,1, 3]]], axis=1,inplace=True) # Note: zero indexed

注意:凡是會(huì)對(duì)原數(shù)組作出修改并返回一個(gè)新數(shù)組的,往往都有一個(gè) inplace可選參數(shù)眠冈。如果手動(dòng)設(shè)定為True(默認(rèn)為False)飞苇,那么原數(shù)組直接就被替換。也就是說蜗顽,采用inplace=True之后布卡,原數(shù)組名(如2和3情況所示)對(duì)應(yīng)的內(nèi)存值直接改變;而采用inplace=False之后雇盖,原數(shù)組名對(duì)應(yīng)的內(nèi)存值并不改變堪藐,需要將新的結(jié)果賦給一個(gè)新的數(shù)組或者覆蓋原數(shù)組的內(nèi)存位置(如1情況所示)

合并兩個(gè)dataframe

pd.merge(df1,df2,how='left',on='Part Description')

插入一列

pd.insert(1,'e',df['a'])

插入在第1列(起始為0列疾层,列名為e召烂,列的內(nèi)容為df['a'])


dataframe 選取Nan 或者not Nan

productid_2=productid_1[productid_1['Product Code'].notnull()] #以該列非空值為條件捷凄,篩選整個(gè)dataframe
productid_2=productid_1[productid_1['Product Code'].isnull()]  #以該列空值為條件,篩選整個(gè)dataframe
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虚汛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子皇帮,更是在濱河造成了極大的恐慌卷哩,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件属拾,死亡現(xiàn)場(chǎng)離奇詭異将谊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)渐白,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門尊浓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纯衍,你說我怎么就攤上這事栋齿。” “怎么了襟诸?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵瓦堵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我歌亲,道長(zhǎng)菇用,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任陷揪,我火速辦了婚禮惋鸥,結(jié)果婚禮上杂穷,老公的妹妹穿的比我還像新娘。我一直安慰自己卦绣,他們只是感情好耐量,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迎卤,像睡著了一般拴鸵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜗搔,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天劲藐,我揣著相機(jī)與錄音,去河邊找鬼樟凄。 笑死聘芜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缝龄。 我是一名探鬼主播汰现,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叔壤!你這毒婦竟也來了瞎饲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤炼绘,失蹤者是張志新(化名)和其女友劉穎嗅战,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俺亮,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驮捍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脚曾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片东且。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖本讥,靈堂內(nèi)的尸體忽然破棺而出珊泳,到底是詐尸還是另有隱情,我是刑警寧澤拷沸,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布旨椒,位于F島的核電站,受9級(jí)特大地震影響堵漱,放射性物質(zhì)發(fā)生泄漏综慎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一勤庐、第九天 我趴在偏房一處隱蔽的房頂上張望示惊。 院中可真熱鬧好港,春花似錦、人聲如沸米罚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽录择。三九已至拔莱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隘竭,已是汗流浹背塘秦。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留动看,地道東北人尊剔。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菱皆,于是被迫代替她去往敵國(guó)和親须误。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1. 安裝 如果做數(shù)據(jù)分析用途建議使用Anaconda仇轻,自帶pandas numy 以及很多庫京痢,還有集成開發(fā)環(huán)境S...
    steveysy閱讀 23,544評(píng)論 0 37
  • 最近在寫個(gè)性化推薦的論文,經(jīng)常用到Python來處理數(shù)據(jù)篷店,被pandas和numpy中的數(shù)據(jù)選取和索引問題繞的比較...
    shuhanrainbow閱讀 4,553評(píng)論 6 19
  • 一祭椰、pandas數(shù)據(jù)結(jié)構(gòu) 1、Series Series有兩個(gè)屬性,values和index船庇,values表示Se...
    迪_7761閱讀 585評(píng)論 0 1
  • 對(duì)使用python進(jìn)行數(shù)據(jù)分析的研究者而言,pandas是非常有用的一個(gè)模塊侣监。在現(xiàn)實(shí)數(shù)據(jù)收集中難以保證數(shù)據(jù)格式整齊...
    GPZ_Lab閱讀 1,454評(píng)論 0 5
  • 《悟空傳》還沒看完鸭轮,默默翻開了《和你在一起才是全世界》,吃了一把狗糧……想起來給某人選個(gè)禮物超麻煩…… 第一次...
    菠蘿菠蘿蜜u閱讀 264評(píng)論 0 0