>  기사  >  백엔드 개발  >  pandas+dataframe은 행 및 열 선택과 슬라이싱 작업을 구현합니다.

pandas+dataframe은 행 및 열 선택과 슬라이싱 작업을 구현합니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-04-12 09:57:354527검색

이번에는 행 선택 및 슬라이싱 작업을 구현하기 위해 pandas+dataframe을 가져왔습니다. pandas+dataframe에서 행 선택 및 슬라이싱 작업을 구현하기 위해 구현하는 notes는 무엇입니까? 다음은 실제 사례입니다.

SQL의 선택은 열 이름을 기반으로 합니다. Pandas는 열 이름을 기반으로 선택할 수 있을 뿐만 아니라 위치(행과 열에 주의할 숫자)를 기반으로 선택할 수도 있습니다. pandas 행과 열에 위치는 0부터 선택됩니다. 관련 함수는 다음과 같습니다.

1) loc은 열 레이블을 기반으로 특정 행을 선택할 수 있습니다(행 인덱스를 기반으로).

2) iloc, 행/열의 위치를 ​​기반으로 합니다.

3) at, 지정된 행 인덱스 및 열 레이블을 기반으로 DataFrame의 요소를 빠르게 찾습니다.

4) iat, 위치에 따라 배치된다는 점을 제외하면 at과 유사합니다.

5) ix, 혼합; loc 및 iloc, 레이블과 위치를 모두 지원합니다.

Instance

import pandas as pd
import numpy as np
df = pd.DataFrame({'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59],
          'tip': [1.01, 1.66, 3.50, 3.31, 3.61],
          'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})
# data type of columns
print df.dtypes
# indexes
print df.index
# return pandas.Index
print df.columns
# each row, return array[array]
print df.values
print df
sex      object
tip      float64
total_bill  float64
dtype: object
RangeIndex(start=0, stop=5, step=1)
Index([u'sex', u'tip', u'total_bill'], dtype='object')
[['Female' 1.01 16.99]
 ['Male' 1.66 10.34]
 ['Male' 3.5 23.68]
 ['Male' 3.31 23.68]
 ['Female' 3.61 24.59]]
   sex  tip total_bill
0 Female 1.01    16.99
1  Male 1.66    10.34
2  Male 3.50    23.68
3  Male 3.31    23.68
4 Female 3.61    24.59
print df.loc[1:3, ['total_bill', 'tip']]
print df.loc[1:3, 'tip': 'total_bill']
print df.iloc[1:3, [1, 2]]
print df.iloc[1:3, 1: 3]
  total_bill  tip
1    10.34 1.66
2    23.68 3.50
3    23.68 3.31
  tip total_bill
1 1.66    10.34
2 3.50    23.68
3 3.31    23.68
  tip total_bill
1 1.66    10.34
2 3.50    23.68
  tip total_bill
1 1.66    10.34
2 3.50    23.68

잘못된 표현:

print df.loc[1:3, [2, 3]]#.loc仅支持列名操作
KeyError: 'None of [[2, 3]] are in the [columns]'
print df.loc[[2, 3]]#.loc可以不加列名,则是行选择
  sex  tip total_bill
2 Male 3.50    23.68
3 Male 3.31    23.68
print df.iloc[1:3]#.iloc可以不加第几列,则是行选择
sex  tip total_bill
1 Male 1.66    10.34
2 Male 3.50    23.68
print df.iloc[1:3, 'tip': 'total_bill']
TypeError: cannot do slice indexing on <class &#39;pandas.indexes.base.Index&#39;> with these indexers [tip] of <type &#39;str&#39;>
print df.at[3, 'tip']
print df.iat[3, 1]
print df.ix[1:3, [1, 2]]
print df.ix[1:3, ['total_bill', 'tip']]
3.31
3.31
  tip total_bill
1 1.66    10.34
2 3.50    23.68
3 3.31    23.68
  total_bill  tip
1    10.34 1.66
2    23.68 3.50
3    23.68 3.31
print df.ix[[1, 2]]#行选择
  sex  tip total_bill
1 Male 1.66    10.34
2 Male 3.50    23.68
print df[1: 3]
print df[['total_bill', 'tip']]
# print df[1:2, ['total_bill', 'tip']] # TypeError: unhashable type
sex  tip total_bill
1 Male 1.66    10.34
2 Male 3.50    23.68
  total_bill  tip
0    16.99 1.01
1    10.34 1.66
2    23.68 3.50
3    23.68 3.31
4    24.59 3.61

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사에 주목하세요!

추천 도서:

Pandas의 Dataframe 쿼리 방법은 무엇인가요?

Selenium+cookie 인증 코드 건너뛰기 로그인 구현 단계별 설명

위 내용은 pandas+dataframe은 행 및 열 선택과 슬라이싱 작업을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.