Преобразование многострочного фрейма данных в однострочный фрейм данных с парными столбцами - PullRequest
0 голосов
/ 08 июля 2019

У меня есть фрейм данных, который выглядит следующим образом:

   Mean_58   58   Mean_59   59   ...   Mean_350   350
0  7         2    4         3          6          5 
1  8         1    2         5          8          3
2  3         1    9         7          8          9

Я хотел бы создать однострочный фрейм данных с именем row_dataframe, который имеет следующие заголовки столбцов и порядок:

   Mean_58_1   58_1   Mean_58_2   58_2   Mean_58_3   58_3 ... Mean_350_3 350_3
0  7           2      8           1      3           1        8          9

Я видел похожие ответы, которые используют unstack и sort_index, но как вы могли бы соединить столбцы, как я это сделал в row_dataframe?Любая помощь приветствуется!

1 Ответ

0 голосов
/ 08 июля 2019

Ну, вы можете использовать расплав. Давайте возьмем этот df например:

df = pd.DataFrame(np.arange(20).reshape(4,5),columns=["a","b","c","d","e"])
#Output
    a   b   c   d   e
0   0   1   2   3   4
1   5   6   7   8   9
2   10  11  12  13  14
3   15  16  17  18  19

Теперь вы немного переверните его и получите то, что хотите:

intermediate = pd.melt(df,id_vars=["index"],value_vars=df.columns.difference(["index"]))
cols = intermediate["variable"].astype("str") + "_" + intermediate["index"].astype("str")
final_df = pd.DataFrame(columns=cols.values,data=intermediate["value"].values.reshape(1,20))

#Output
a_0     a_1     a_2     a_3     b_0     b_1     b_2     b_3     c_0     c_1     c_2     c_3     d_0     d_1     d_2     d_3     e_0     e_1     e_2     e_3
0       5       10      15      1       6       11      16      2      7       12        17     3       8       13      18      4       9       14      19

но я уверен, что есть более чистый способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...