程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

pandas通過索引數組,獲取對應值數組

編輯:Python

前言: 已有一個pandas類型的data,通過np.where()操作data,返回一個<class 'tuple'>select_data,元組的第一或第二個元素是我們想要的索引數組,假設索引數組(select_data[0] or select_data[1])命名為yy的類型是<class 'numpy.ndarray'>


目的:直接取出索引數組對應的值


方法:

    情況1:若data的類型是<class 'pandas.core.series.Series'>,可以直接通過data[y]獲取索引數組對應的值數組;
    情況2:若data類型是<class 'pandas.core.frame.DataFrame'>,但它是一維(一行)數據,可使用:data = data.iloc[0] iloc[0]取出DataFrame的第一行數據,返回的是一個Series對象,(然後使用data[y]就可以啦~ )
    情況3:若data類型是多維的<class 'pandas.core.frame.DataFrame'>,目前俺還沒有啥好辦法欸~ 泥萌有啥好辦法可以分享一下~


補充:

  • iloc使用標量整數print(type(df.iloc[0]))提取行,返回Series類型
  • iloc使用整數列表print(type(df.iloc[[0]]))
    df.iloc[[0, 2], [1, 3]]等 提取行,返回DataFrame類型。
  • iloc使用切片df.iloc[1:3, 0:3],返回的也是dataframe

  • iloc: works on the positions in the index (so it only takes integers). (位置索引,和列表索引類似,裡面只能是數字)
  • loc: works on labels in the index.(說白了就是標簽索引)
    (我理解的是:通過行名定位,所以可以是字符串)

  • pandas以類似字典的方式來獲取某一列的值,比如df[‘A’],得到df的A列,返回的也是一個Series對象
  • data.at[user_id,movie_name] 根據指定行 index(int) 及 列 label(str) 定位元素

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved