정수 인덱스로 팬더 시리즈/데이터프레임 행 선택
왜 그런지 궁금하다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]
컬럼 인덱스를 선택하려고 하다key
Series 개체를 반환합니다.
그러나 []개의 안쪽을 슬라이스하면 행이 슬라이스됩니다.이것은 매우 일반적인 조작이기 때문입니다.
상세한 것에 대하여는, 다음의 문서를 참조해 주세요.
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()
을 내다DataFrame
axis
이치노__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/.iloc
Ted "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
'programing' 카테고리의 다른 글
POST 데이터를 사용한 PHP 리다이렉트 (0) | 2022.09.05 |
---|---|
iOS Safari 개인 브라우징 모드에서 Laravel 쿠키가 설정되지 않음 (0) | 2022.09.05 |
InputStream 길이를 사용하는 AmazonS3 putObject 예시 (0) | 2022.09.04 |
테이블 또는 열의 모든 외부 키를 표시하려면 어떻게 해야 합니까? (0) | 2022.09.04 |
Java에서의 로그업이란? (0) | 2022.09.04 |