단일 행 데이터 프레임 (여전히 데이터 프레임이 생성됨)을 전치 한 다음 결과를 시리즈로 압축 할 수 있습니다 (의 역 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:
result = pd.Series()
elif df.shape == (1, 1)
result = pd.Series(df.iat[0, 0], index=df.columns)
elif len(df) == 1:
result = df.T.squeeze()
else:
pass
이것은 @themachinist가 제공하는 답변 라인을 따라 단순화 할 수도 있습니다.
if len(df) > 1:
pass
else:
result = pd.Series() if df.empty else df.iloc[0, :]
df.T