pandas DataFrame.rename使用mapper

时间:2017-12-13 18:40:29

标签: python pandas

pandas docs之后,我尝试了以下内容(逐字逐出文档):

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
df.rename(str.lower, axis='columns')

但我收到了错误

  

TypeError:rename()得到了一个意外的关键字参数“axis”

我也试过

df.rename(mapper=str.lower, axis='columns')

然后我得到:

  

TypeError:rename()得到了一个意外的关键字参数“mapper”

我是否在查看旧版本的文档?

2 个答案:

答案 0 :(得分:7)

  

我是否在查看旧版本的文档?

不,事实恰恰相反。您正在查看最新版本(截至目前为0.21)。我很确定你有一个旧版本的熊猫。

在旧版本中,某些函数使用axis来指定索引/列,而其他函数使用index=...columns=...。为了缓解这种情况,开发人员对许多API进行了彻底检查,以使它们彼此更加一致。 rename就是其中之一。

您所使用的代码在最新版本上运行得很好,但没有更旧版本,因为mapper中引入了axis0.21

作为参考,在旧版本中,以下备选方案都有效 -

df.columns = df.columns.str.lower()

df = df.rename(columns=dict(zip(df.columns, df.columns.str.lower())))

答案 1 :(得分:3)

也许您可以将地图传递给columns

df.rename(columns={c:c.lower() for c in df.columns})

希望它有所帮助!