[PYTHON] 팬더 데이터 프레임을 시리즈로 변환
PYTHON팬더 데이터 프레임을 시리즈로 변환
나는 팬더에 다소 새로운 사람입니다. 1 열 23 열 팬더 데이터 프레임이 있습니다.
이것을 시리즈로 변환하고 싶습니까? 이 일을하는 가장 비범 한 방법이 무엇인지 궁금합니다.
나는 pd.Series (myResults)를 시도했지만 ValueError에 불만을 토로한다 : 크기가 23 인 시퀀스를 차원 1의 배열 축으로 복사 할 수 없다. 여전히 수학 용어로 "벡터"라는 것을 깨닫기에는 현명하지 못하다.
감사!
해결법
-
==============================
1.차라리 차원의 차이를 인식하는 것이 현명하다고 말하십시오. :-)
차라리 차원의 차이를 인식하는 것이 현명하다고 말하십시오. :-)
여러분이 할 수있는 가장 간단한 방법은 iloc을 사용하여 위치에있는 행을 선택하는 것입니다.이 행은 새로운 인덱스로 열과 값으로 된 값이있는 Series를 제공합니다.
>>> df = pd.DataFrame([list(range(5))], columns=["a{}".format(i) for i in range(5)]) >>> df a0 a1 a2 a3 a4 0 0 1 2 3 4 >>> df.iloc[0] a0 0 a1 1 a2 2 a3 3 a4 4 Name: 0, dtype: int64 >>> type(_) <class 'pandas.core.series.Series'>
-
==============================
2.단일 행 데이터 프레임 (여전히 데이터 프레임을 생성 함)을 조 변경하고 결과를 시리즈 (to_frame의 역함수)로 압축 할 수 있습니다.
단일 행 데이터 프레임 (여전히 데이터 프레임을 생성 함)을 조 변경하고 결과를 시리즈 (to_frame의 역함수)로 압축 할 수 있습니다.
df = pd.DataFrame([list(range(5))], columns=["a{}".format(i) for i in range(5)]) >>> df.T.squeeze() a0 0 a1 1 a2 2 a3 3 a4 4 Name: 0, dtype: int64
참고 : @IanS가 제기 한 포인트를 수용하려면 OP 질문에 없더라도 데이터 프레임의 크기를 테스트하십시오. df가 데이터 프레임이라고 가정하고 있지만 가장자리의 경우 빈 데이터 프레임, 모양의 데이터 프레임 (1, 1) 및 둘 이상의 행이있는 데이터 프레임이 사용되는 경우 원하는 기능을 구현해야합니다.
if df.empty: # Empty dataframe, so convert to empty Series. result = pd.Series() elif df.shape == (1, 1) # DataFrame with one value, so convert to series with appropriate index. result = pd.Series(df.iat[0, 0], index=df.columns) elif len(df) == 1: # Convert to series per OP's question. result = df.T.squeeze() else: # Dataframe with multiple rows. Implement desired behavior. pass
@themachinist가 제공 한 답변의 라인을 따라이 작업을 단순화 할 수도 있습니다.
if len(df) > 1: # Dataframe with multiple rows. Implement desired behavior. pass else: result = pd.Series() if df.empty else df.iloc[0, :]
-
==============================
3.다음 두 가지 방법 중 하나를 사용하여 데이터 프레임을 분할하여 시리즈를 검색 할 수 있습니다.
다음 두 가지 방법 중 하나를 사용하여 데이터 프레임을 분할하여 시리즈를 검색 할 수 있습니다.
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iloc.html http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html
import pandas as pd import numpy as np df = pd.DataFrame(data=np.random.randn(1,8)) series1=df.iloc[0,:] type(series1) pandas.core.series.Series
from https://stackoverflow.com/questions/33246771/convert-pandas-data-frame-to-series by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 def 함수 : 함수의 끝을 어떻게 지정합니까? (0) | 2018.10.19 |
---|---|
[PYTHON] Python : 클래스를 반복 가능하게 만든다. (0) | 2018.10.19 |
[PYTHON] 대기열의 모든 항목 지우기 (0) | 2018.10.19 |
[PYTHON] 표준 라이브러리를 사용하여 잘못된 형식의 HTML을 파이썬에서 구문 분석하는 방법 (0) | 2018.10.19 |
[PYTHON] pymongo.errors.CursorNotFound : 서버에서 커서 ID '...'이 유효하지 않습니다. (0) | 2018.10.19 |