질문 : Pandas 데이터 프레임에서 여러 열 선택
다른 열에 데이터가 있지만 다른 변수에 저장하기 위해 추출하는 방법을 모르겠습니다.
index a b c
1 2 3 4
2 3 4 5
'a'
, 'b'
하고 df1에 저장하려면 어떻게해야합니까?
나는 시도했다
df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
아무것도 작동하지 않는 것 같습니다.
답변
열 이름 (문자열)은 시도한 방식으로 분할 할 수 없습니다.
여기에 몇 가지 옵션이 있습니다. 어떤 변수를 잘라 내고 싶은지 컨텍스트에서 알고 있다면 목록을 __getitem__
구문 ([] 's)에 전달하여 해당 열만보기를 반환 할 수 있습니다.
df1 = df[['a', 'b']]
또는 이름이 아닌 숫자로 인덱싱하는 것이 중요하다면 (코드가 처음 두 열의 이름을 몰라도이 작업을 자동으로 수행해야 함) 대신 다음을 수행 할 수 있습니다.
df1 = df.iloc[:, 0:2] # Remember that Python does not slice inclusive of the ending index.
또한 Pandas 개체와 해당 개체의 복사본에 대한보기의 개념을 숙지해야합니다. 위의 첫 번째 메서드는 원하는 하위 개체 (원하는 슬라이스)의 메모리에 새 복사본을 반환합니다.
그러나 때때로 Pandas에는이를 수행하지 않고 대신 원래 객체의 하위 객체 또는 슬라이스와 동일한 메모리 청크를 참조하는 새 변수를 제공하는 인덱싱 규칙이 있습니다. 이것은 두 번째 인덱싱 방법에서 발생하므로 copy()
함수로 수정하여 일반 복사본을 얻을 수 있습니다. 이 경우 슬라이스 된 객체라고 생각하는 것을 변경하면 원본 객체가 변경 될 수 있습니다. 항상 이것을 조심하는 것이 좋습니다.
df1 = df.iloc[0, 0:2].copy() # To avoid the case where changing df1 also changes df
iloc
을 사용하려면 열 위치 (또는 인덱스)를 알아야합니다. 칼럼 위치가 변경 될 수 있으므로 대신 하드 코딩 인덱스의 경우 사용 iloc
함께 get_loc
의 기능 columns
열 인덱스를 얻기 위해 dataframe 물체의 제조 방법.
{df.columns.get_loc(c): c for idx, c in enumerate(df.columns)}
이제이 사전을 사용하여 이름과 iloc
사용하여 열에 액세스 할 수 있습니다.
출처 : https://stackoverflow.com/questions/11285613/selecting-multiple-columns-in-a-pandas-dataframe
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python2에서 dict.items ()와 dict.iteritems ()의 차이점 (0) | 2021.07.22 |
---|---|
Python-입력한 두 값 사이의 값으로 배열 생성하기 (0) | 2021.07.22 |
Python 요청으로 JSON 데이터를 게시하는 방법 (0) | 2021.07.19 |
Python에서 null 개체 참조 (0) | 2021.07.16 |
Python 모듈을 unload (reload) 하는 법 (0) | 2021.07.16 |