programing

정수 인덱스로 팬더 시리즈/데이터프레임 행 선택

randomtip 2022. 9. 5. 22:38
반응형

정수 인덱스로 팬더 시리즈/데이터프레임 행 선택

왜 그런지 궁금하다df[2]는 지원되지 않습니다만,df.ix[2]그리고.df[2:3]둘 다 일해요.

In [26]: df.ix[2]
Out[26]: 
A    1.027680
B    1.514210
C   -1.466963
D   -0.162339
Name: 2000-01-03 00:00:00

In [27]: df[2:3]
Out[27]: 
                  A        B         C         D
2000-01-03  1.02768  1.51421 -1.466963 -0.162339

기대하겠습니다.df[2]같은 방법으로 일하다df[2:3]Python 인덱싱 규칙과 일치해야 합니다.단일 정수로 인덱싱 행을 지원하지 않는 설계상의 이유가 있습니까?

에코 @HYRY, "0.11의 새로운 문서"

http://pandas.pydata.org/pandas-docs/stable/indexing.html

여기 새로운 오퍼레이터가 있습니다..iloc정수 인덱스만 지원하는 설명 및.loc라벨 색인만 지원하는 설명

예: 이 시나리오를 상상합니다.

In [1]: df = pd.DataFrame(np.random.rand(5,2),index=range(0,10,2),columns=list('AB'))

In [2]: df
Out[2]: 
          A         B
0  1.068932 -0.794307
2 -0.470056  1.192211
4 -0.284561  0.756029
6  1.037563 -0.267820
8 -0.538478 -0.800654

In [5]: df.iloc[[2]]
Out[5]: 
          A         B
4 -0.284561  0.756029

In [6]: df.loc[[2]]
Out[6]: 
          A         B
2 -0.470056  1.192211

[]행 슬라이스(라벨 위치별)만

DataFrame 인덱싱 연산자의 주요 목적은 다음과 같습니다.[]컬럼을 선택하는 것입니다.

인덱싱 연산자는 문자열 또는 정수를 전달받으면 해당 이름의 열을 검색하여 시리즈로 반환하려고 합니다.

위의 질문에서는 다음과 같습니다.df[2]정수값과 일치하는 열 이름을 검색합니다.2이 열은 존재하지 않습니다.KeyError인스톨 됩니다.


슬라이스 표기법을 사용하면 DataFrame 인덱싱 연산자가 행을 선택하도록 동작을 완전히 변경합니다.

묘하게도 슬라이스를 지정하면 DataFrame 인덱싱 연산자가 행을 선택하고 정수 위치 또는 인덱스 레이블별로 선택할 수 있습니다.

df[2:3]

이 슬라이스는 마지막 요소를 제외하고 정수 위치가 2 ~3인 행에서 시작합니다.그래서, 한 줄만.다음은 세 번째 행마다 정수 위치 6에서 시작하여 20을 포함하지 않는 행을 선택합니다.

df[6:20:3]

DataFrame 인덱스에 문자열이 있는 경우 문자열 레이블로 구성된 슬라이스를 사용할 수도 있습니다.자세한 내용은 .iloc vs.loc에서 솔루션을 참조하십시오.

이 슬라이스 표기법은 명시적이지 않고 거의 사용되지 않기 때문에 인덱싱 연산자와 함께 사용하는 경우는 거의 없습니다.열로 썰 때, 잘게 썬다..loc/.iloc.

Data Frame은 Series의 딕트라고 생각하시면 됩니다. df[key]컬럼 인덱스를 선택하려고 하다keySeries 개체를 반환합니다.

그러나 []개의 안쪽을 슬라이스하면 행이 슬라이스됩니다.이것은 매우 일반적인 조작이기 때문입니다.

상세한 것에 대하여는, 다음의 문서를 참조해 주세요.

http://pandas.pydata.org/pandas-docs/stable/indexing.html#basics

panda 테이블에 대한 인덱스 기반 액세스를 위해 테이블을 Numpy 어레이로 변환하는 numpy.as_array 옵션을 고려할 수도 있습니다.

np_df = df.as_matrix()

그리고 나서.

np_df[i] 

효과가 있을 거야

소스 코드를 확인할 수 있습니다.

DataFrame 기능을 _slice()을 내다DataFrameaxis이치노__getitem__()★★★★★★에DataFrame는, 「」를 기동하고 때에 _slice()_slice()0으로 하다

다음과 같은 간단한 실험을 수행할 수 있습니다.

print df._slice(slice(0, 2))
print df._slice(slice(0, 2), 0)
print df._slice(slice(0, 2), 1)

이렇게 데이터 프레임을 루프할 수 있습니다.

for ad in range(1,dataframe_c.size):
    print(dataframe_c.values[ad])

나는 보통 에 찬성한다..loc/.ilocTed "Data Frame" 데이터 프레임 "Ted " "Data Frame" "Ted "Data Frame" (데이터 프레임) , 「 」를 참조해 주세요.df.T[2] 2행 입니다.df.

언급URL : https://stackoverflow.com/questions/16096627/selecting-a-row-of-pandas-series-dataframe-by-integer-index

반응형