Принудительно df.index
на все 0
и вызовите вашу команду pivot
с помощью reindex
df.index = [0]*df.index.size
df_out = df.pivot(columns='Month', values='Val').reindex(columns=df.Month)
Или выполните прямую однострочную
df_out = (df.set_index(np.array([0]*df.index.size))
.pivot(columns='Month', values='Val').reindex(columns=df.Month))
Out[88]:
Month Jan Feb Mar Apr May Jun Jul Aug \
0 4.290323 3.75 4.032258 4.033333 4.225806 4.4 4.774194 4.774194
Month Sep Oct Nov Dec
0 4.6 4.16129 4.233333 3.935484
Если вы не хотите изменять df.index
, как указано выше, вы можете просто использовать pivot
с ffill
, bfill
и iloc
df_out = (df.pivot(columns='Month', values='Val').ffill().bfill().iloc[[0]]
.reindex(columns=df.Month))
Out[99]:
Month Jan Feb Mar Apr May Jun Jul Aug \
0 4.290323 3.75 4.032258 4.033333 4.225806 4.4 4.774194 4.774194
Month Sep Oct Nov Dec
0 4.6 4.16129 4.233333 3.935484