在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”
我是否在查看旧版本的文档?
答案 0 :(得分:7)
我是否在查看旧版本的文档?
不,事实恰恰相反。您正在查看最新版本(截至目前为0.21
)。我很确定你有一个旧版本的熊猫。
在旧版本中,某些函数使用axis
来指定索引/列,而其他函数使用index=...
或columns=...
。为了缓解这种情况,开发人员对许多API进行了彻底检查,以使它们彼此更加一致。 rename
就是其中之一。
您所使用的代码在最新版本上运行得很好,但没有更旧版本,因为mapper
中引入了axis
和0.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})
希望它有所帮助!