当前位置: 首页 > 知识库问答 >
问题:

熊猫数据帧。使用映射器时重命名意外的关键字参数“axis”

彭烨熠
2023-03-14

在熊猫文档之后,我尝试了以下内容(逐字逐句):

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')

但我得到:

重命名()得到了一个意外的关键字参数映射器

我在看旧版本的文档吗?

共有2个答案

公冶伟
2023-03-14

您可能正在使用python2和旧版本的熊猫。axis参数尚未为您实现。你有3个选择。删除参数并显式命名列,如下所示,或者将映射传递给重命名(…) ,或者更新python和pandas的版本。

import pandas as pd  
import numpy as np  
import sys 
print(sys.version) 
print(pd.__version__)

#create a dataframe with two columns named Foo and BAR 
df = pd.DataFrame({" Foo": [1, 2, 3], "BAR ": [4, 5, 6]}) 
print(df)

#rename the columns in the dataframe to strip whitespace and be all lowercase: 
df = df.rename(columns={c:c.strip().lower() for c in df.columns}) 
print(df)

#change the column named foo to moo, and change the column named bar to baz 
df = df.rename(columns={"foo": "moo", "bar": "baz"}) 
print(df) 

哪些打印:

2.7.16 [GCC 4.9.3]
0.16.2
    Foo  BAR 
0     1     4
1     2     5
2     3     6

   foo  bar
0    1    4
1    2    5
2    3    6

   moo  baz
0    1    4
1    2    5
2    3    6

夏星阑
2023-03-14

我在看旧版本的文档吗?

不,事实上恰恰相反。您现在看到的是最新版本(0.21)。我敢肯定你有一个老版本的熊猫。

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

您所拥有的代码在最新版本中运行良好,但在任何旧版本中都不会运行,因为mapperax是在0.21中引入的。

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

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

而且,

df = df.rename(columns=dict(zip(df.columns, df.columns.str.lower())))
 类似资料:
  • 我有2个熊猫数据框 df1= df2= 我想使用df2“类”列中的可能值搜索df1中的“课程”列,然后返回适当的合计权重。 这是我目前所知道的 导致 我怎样才能得到这样的东西 任何帮助都将不胜感激。谢谢

  • 我有以下代码,其中包括一个具有各种资本化的列表。我想使用case=False将Pandas代码设置为忽略区分大小写,但是我的代码触发了以下错误: TypeError:isin()获得意外的关键字参数“case” 你能帮忙吗

  • 这似乎是非常基本的知识,但我还是卡住了,尽管我有一些数据处理的理论背景(通过其他软件)。值得一提的是,我是蟒蛇和熊猫图书馆的新手。 我的任务是将系列名称列的值作为单独的列(从长到宽转换)。我花了很长时间尝试不同的方法,但只有错误。 例如: 我犯了一个错误: ...很多短信...通过值的长度是2487175,索引暗示2 有谁能指导我完成这个过程吗?谢谢 它用于代码“mydata=mydata”。pi

  • 我有两个数据帧,都有一个键列,可能有重复项,但数据帧大部分都有相同的重复键。我希望在该键上合并这些数据帧,但这样做的方式是,当两者具有相同的副本时,这些副本将分别合并。此外,如果一个数据帧的键的副本比另一个多,我希望它的值填充为NaN。例如: 我正在尝试获得以下输出 所以基本上,我想把复制的K2键当作K2_1,K2_2。。。然后在数据帧上进行how='outer'合并。你知道我怎样才能做到这一点吗

  • 我有这个熊猫数据框 这就给了我: 我该怎么办 做一个新的人物, 将标题添加到图"标题这里" 以某种方式创建一个映射,这样标签不是29,30等,而是“29周”,“30周”等。 将图表的较大版本保存到我的计算机(例如10 x 10英寸) 这件事我已经琢磨了一个小时了!

  • 我有wiev功能: 装饰: "index"函数正常工作,但"细节"向下错误: TypeError:包装器()获得意外的关键字参数“id” P.S.id参数在url模式中