Anda dapat mengubah urutan kerangka data baris tunggal (yang masih menghasilkan kerangka data) dan kemudian memeras hasilnya menjadi rangkaian (kebalikan dari 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
Catatan: Untuk mengakomodasi poin yang dimunculkan oleh @IanS (meskipun tidak ada dalam pertanyaan OP), uji ukuran kerangka data. Saya berasumsi bahwa itu df
adalah kerangka data, tetapi kasus tepi adalah kerangka data kosong, kerangka data bentuk (1, 1), dan kerangka data dengan lebih dari satu baris dalam hal ini penggunaan harus mengimplementasikan fungsionalitas yang diinginkan.
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
Ini juga dapat disederhanakan sesuai dengan jawaban yang diberikan oleh @themachinist.
if len(df) > 1:
pass
else:
result = pd.Series() if df.empty else df.iloc[0, :]
df.T