-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
행 기준 데이터 불러오기 (loc)
20.06.22 15:18 작성 조회수 105
1
행을 기준으로 데이터를 불러오는 방법에 대해 질문 드립니다~^^
df.loc[0] 은 0번째 인덱스의 행을 불러옵니다. (맞나요?ㅎㅎ)
그럼 df.loc[0, 1] 은 에러를 출력,
df.loc[0, "열 이름"] 은 "열 이름"의 해당하는 열의 0번째 행의 값을 불러옵니다.
그럼 iloc를 사용하는 것이 아니라면
df.loc[0, 1]가 에러를 출력하는 것은 loc를 이용시 df.loc[0, "열 이름"] 은 0번째 행, 0번째 열의 값을 불러오지만
( [행index, 열index] )을 위처럼 열의 변수명을 이용하는 것이 아닌 둘다 인덱스를 이용시
불러올 수 없는 건가요?
df[0][0]으로 0번째 행의 0번째 열의 값을 출력하는 것을 알고 있지만 제가 이해하는게 맞는 것인지 궁금합니다.
답변을 작성해보세요.
0
박조은
지식공유자2020.06.23
안녕하세요.
질문주신 두 가지 방법에 대해서는 속도차이는 별로 없습니다.
가장 큰 차이점은 열이름에 공백이나 특수문자가 들어갔을 때 df.열이름 으로 사용할 수가 없습니다.
또, 연산의 속도차이는 %timeit을 통해 직접 프로파일링 해보시면 두 가지 방법의 속도 차이를 좀 더 정확하게 보실 수 있습니다.
%timeit df.열이름.describe()
%timeit df["열이름"].describe()
이렇게 두 가지 방법으로 비교해 보세요!
그리고 df["열이름"] 으로 표현하면 1차원 시리즈로 반환이 되고
df[["열이름"]] 으로 표현하면 2차원 데이터프레임으로 반환이 됩니다.
0
nealzs
질문자2020.06.23
pandas으로 불러온 데이터를 처리하는 과정에서
df.열이름 df["열이름"]
위 두가지 코드에서 특별한 차이점이 있는지 궁금합니다~
예를 들어 df.열이름.describe() 와 df["열이름"].describe 에서 연산의 속도차이가 있나요?
후자는 2차원으로도 표현 가능한 것 같은데 그 외로는 별차이가 없나요~~?
0
박조은
지식공유자2020.06.22
안녕하세요.
질문 주신 내용은 .iloc를 사용하시면 0부터 시작하는 인덱스 번호로 데이터를 색인할 수 있습니다.
그리고 .loc 했을 때 인덱스가 숫자이기 때문에 .loc[0] 을 했을 때 첫번째 행을 불러올 수 있는 것입니다.
그래서 .loc는 행의 숫자보다는 인덱스값으로 불러온다가 더 정확한 표현입니다.
.iloc 로 인덱스 번호를 통해 행, 열의 값을 색인해 보세요!
답변 3