Python переименовывает Pandas DataFrame Columns - PullRequest
0 голосов
/ 27 февраля 2019
import pandas as pd
import numpy as np
datain = np.loadtxt(datafile)
df = pd.DataFrame(data = datain, columns = ["t","p","x","y","z"])
avg = df.groupby(["t"], sort=False)["p"].mean().rename(columns={1:"mean"})

Это не работает, оно говорит мне TypeError: rename () получил неожиданный аргумент ключевого слова "columns".Это также не работает, если я делаю это,

avg.rename(columns = {1:"mean"}, inplace=True)

Я не могу понять, почему, вся документация говорит мне, что мой вызов столбцов правильный.Я просто хочу переименовать пустой столбец, созданный моим «средним» вызовом, чтобы получить строковый индекс.Кто-нибудь знает, почему или как это исправить?Все примеры, которые я видел, следуют этому формату.Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Я думаю, что это должно работать

avg = df.groupby (["t"], sort = False) ["p"]. Mean (). Rename ('mean'). Reset_index ()

0 голосов
/ 27 февраля 2019

IIUC вы могли бы сделать это

import pandas as pd
df = pd.DataFrame({"a":np.arange(10),
                   "b":np.random.choice(["A","B"],10)})

avg = df.groupby("b", sort=False)["a"].mean()\
        .reset_index(name="mean")

или

avg = df.groupby("b", sort=False)["a"].mean().reset_index()\
        .rename(columns={"a":"mean"})

или

avg = df.groupby("b", sort=False, as_index=False)["a"].mean()\
        .reset_index()\
        .rename(columns={"a":"mean"})
...