Поворот и переименование Pandas dataframe - PullRequest
0 голосов
/ 29 января 2019

У меня есть фрейм данных в формате

      Date         Datediff         Cumulative_sum
01 January 2019       1                   5
02 January 2019       1                   7
02 January 2019       2                   15
01 January 2019       2                   8
01 January 2019       3                   13

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

Index            Day-1    Day-2    Day-3
01 January 2019    5        8        13
02 January 2019    7        15

Я использовалкоманда pivot, что

pt = pd.pivot_table(df, index = "Date",
                   columns = "Datediff",
                   values = "Cumulative_sum") \
               .reset_index() \
               .set_index("Date"))

, которая возвращает сводную таблицу

                   1        2         3
01 January 2019    5        8        13
02 January 2019    7        15

И я могу затем переименовать столбцы, используя цикл

for column in pt:
    pt.rename(columns = {column : "Day-" + str(column)}, inplace = True)

, который возвращает точночто я хочу.Однако мне было интересно, есть ли более быстрый способ переименовать столбцы при повороте и вообще избавиться от цикла.

1 Ответ

0 голосов
/ 29 января 2019

Использование DataFrame.add_prefix:

df.add_prefix('Day-')

В вашем решении:

pt = (pd.pivot_table(df, index = "Date",
                   columns = "Datediff",
                   values = "Cumulative_sum")
        .add_prefix('Day-'))
...