Bạn có thể chuyển khung dữ liệu một hàng (vẫn dẫn đến một khung dữ liệu) và sau đó ép các kết quả thành một chuỗi (nghịch đảo của 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
Lưu ý: Để phù hợp với điểm do @IanS nêu ra (mặc dù nó không nằm trong câu hỏi của OP), hãy kiểm tra kích thước của khung dữ liệu. Tôi giả sử đó df
là khung dữ liệu, nhưng các trường hợp cạnh là khung dữ liệu trống, khung dữ liệu có hình dạng (1, 1) và khung dữ liệu có nhiều hơn một hàng, trong trường hợp đó, việc sử dụng sẽ triển khai chức năng mong muốn của chúng.
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
Điều này cũng có thể được đơn giản hóa theo dòng câu trả lời do @themachinist cung cấp.
if len(df) > 1:
pass
else:
result = pd.Series() if df.empty else df.iloc[0, :]
df.T