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

删除Pandas中列名的前缀

谢泉
2023-03-14

如何更改pandas数据框的列标签:

['$a', '$b', '$c', '$d', '$e']

['a', 'b', 'c', 'd', 'e'].

共有3个答案

屠嘉
2023-03-14

重命名方法可以采用函数,例如:

In [11]: df.columns
Out[11]: Index([u'$a', u'$b', u'$c', u'$d', u'$e'], dtype=object)

In [12]: df.rename(columns=lambda x: x[1:], inplace=True)

In [13]: df.columns
Out[13]: Index([u'a', u'b', u'c', u'd', u'e'], dtype=object)
左丘阳晖
2023-03-14

只需将其分配给<代码>。列属性:

>>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
>>> df
   $a  $b
0   1  10
1   2  20

>>> df.columns = ['a', 'b']
>>> df
   a   b
0  1  10
1  2  20
龙博
2023-03-14

使用df.rename()函数并引用要重命名的列。并非所有列都必须重命名:

df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy) 
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)

最小代码示例

df = pd.DataFrame('x', index=range(3), columns=list('abcde'))
df

   a  b  c  d  e
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

以下方法都可以工作并产生相同的输出:

df2 = df.rename({'a': 'X', 'b': 'Y'}, axis=1)  # new method
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis='columns')
df2 = df.rename(columns={'a': 'X', 'b': 'Y'})  # old method  

df2

   X  Y  c  d  e
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

请记住将结果分配回来,因为修改不是inplace。或者,指定inplace=True

df.rename({'a': 'X', 'b': 'Y'}, axis=1, inplace=True)
df

   X  Y  c  d  e
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x
 

在v0.25中,如果指定了要重命名的无效列,则还可以指定“errors='raise'来引发错误。参见v0.25rename()docs。

使用df.set_axis()轴=1inplace=False(返回副本)。

df2 = df.set_axis(['V', 'W', 'X', 'Y', 'Z'], axis=1, inplace=False)
df2

   V  W  X  Y  Z
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

这将返回一个副本,但您可以通过设置inplace=True来修改数据帧(这是版本的默认行为)

您也可以直接分配标题:

df.columns = ['V', 'W', 'X', 'Y', 'Z']
df

   V  W  X  Y  Z
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x
 类似资料:
  • 问题内容: 我有一个来自AG列的数据文件,如下所示,但是当我用它读取数据时,它毫无理由地在末尾打印了一个额外的列。 我已经多次查看过我的数据文件,但是其他任何列中都没有多余的数据。我在阅读时应如何删除此多余的列?谢谢 问题答案: df = df.loc[:, ~df.columns.str.contains(‘^Unnamed’)] 如果CSV文件的第一列具有索引值,则可以执行以下操作:

  • 删除数据帧中的列时,我使用: 这工作很棒。为什么我不能用下面的? 因为可以以的方式访问列/Series,所以我希望这能起作用。

  • 问题内容: 从数据框中删除重复列的最简单方法是什么? 我正在通过以下方式读取具有重复列的文本文件: 列名是: 所有“时间”和“相对时间”列均包含相同的数据。我想要: 我所有的删除,删除等尝试,例如: 导致唯一值索引错误: 很抱歉成为熊猫的菜鸟。任何建议,将不胜感激。 额外细节 熊猫版本:0.9.0 Python版本:2.7.3 Windows 7 (通过Pythonxy 2.7.3.0安装) 数据

  • 我正在读取一个包含重复列的文本文件,通过: 列名为: 所有的时间和时间相对列都包含相同的数据。我想要: 抱歉,我做了个熊猫呆子。如有任何建议,将不胜感激。 其他详细信息 Pandas版本:0.9.0 Python版本:2.7.3 Windows 7 (通过Pythonxy 2.7.3.0安装)

  • 问题内容: 我从pandas函数获得了这样的输出文件。 我正在尝试只输出第二列,即 通过删除第一行的顶部和底部行。我怎么做? 问题答案: 您只需要属性: 您可以转换为列表或访问每个值:

  • 问题内容: 我需要删除pandas中数据框的前三行。 我知道会删除最后一行,但我不知道如何删除前n行。 问题答案: 用途: 将为您提供一个没有前三行的新df。