pandas
.ix, .iloc, .loc, .at 및 .iat를 사용하여 DataFrame에 액세스
수색…
.iloc 사용
.iloc은 정수를 사용하여 DataFrame에 데이터를 읽고 씁니다.
먼저 DataFrame을 만듭니다.
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
이 DataFrame은 다음과 같습니다.
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
이제 .iloc을 사용하여 값을 읽고 쓸 수 있습니다. 첫 번째 행, 첫 번째 열을 읽습니다.
print df.iloc[0, 0]
그러면 다음과 같이 인쇄됩니다.
1
우리는 또한 값을 설정할 수 있습니다. 두 번째 열, 두 번째 행을 새로운 것으로 설정할 수 있습니다.
df.iloc[1, 1] = '21'
그리고 무슨 일이 일어 났는지 한번보세요 :
print df
one two
a 1 6
b 2 21
c 3 8
d 4 9
e 5 10
.loc 사용
.loc은 레이블 을 사용하여 데이터를 읽고 씁니다.
DataFrame을 설정해 보겠습니다.
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
그런 다음 DataFrame을 인쇄하여 모양을 볼 수 있습니다.
print df
그러면 출력됩니다.
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
.loc을 사용하여 데이터에 액세스하기 위해 열과 행 레이블 을 사용합니다. 행 'c', 열 '2'를 값 33으로 설정합시다.
df.loc['c', 'two'] = 33
이것이 바로 DataFrame의 모습입니다.
one two
a 1 6
b 2 7
c 3 33
d 4 9
e 5 10
df['two'].loc['c'] = 33
하면 경고가 표시되지 않고 df.loc['c', 'two']
를 사용하여 올바르게 작동 할 수도 있습니다 , 전자는 그렇지 않습니다.
데이터 조각을 읽을 수 있습니다. 예를 들면 다음과 같습니다.
print df.loc['a':'c']
행 a ~ c를 인쇄합니다. 이것은 포괄적입니다.
one two
a 1 6
b 2 7
c 3 8
마지막으로 우리는 함께 할 수 있습니다.
print df.loc['b':'d', 'two']
행 b를 열 '2'의 c로 출력합니다. 열 레이블이 인쇄되지 않습니다.
b 7
c 8
d 9
.loc에 레이블이없는 정수 인수가 제공되면 축의 정수 색인화 (.iloc의 동작)로 되돌아갑니다. 이렇게하면 혼합 레이블 및 정수 색인화가 가능해집니다.
df.loc['b', 1]
'b'행의 두 번째 열 (0에서 시작하는 인덱스)의 값을 반환합니다.
7