Python重命名Pandas DataFrame列

问题描述 投票:1回答:2
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)

我无法弄清楚原因,所有文档告诉我,我的列调用是正确的。我只想重命名由我的“mean”调用创建的空白列以获得字符串索引。有谁知道为什么或如何解决这个问题?我见过的所有例子都遵循这种格式。谢谢。

python pandas dataframe rename
2个回答
2
投票

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"})

0
投票

我认为这应该有效

avg = df.groupby([“t”],sort = False)[“p”]。mean()。rename('mean')。reset_index()

© www.soinside.com 2019 - 2024. All rights reserved.