为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫栏更名

熊猫栏更名

暮色呼如 2019-06-14 17:05:29
熊猫栏更名我有一个DataFrame使用熊猫和列标签,我需要编辑,以取代原来的列标签。我想在DataFrame中更改列名A其中原始列名为:['$a', '$b', '$c', '$d', '$e']到['a', 'b', 'c', 'd', 'e'].我将编辑后的列名存储在列表中,但不知道如何替换列名。
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

只需将其分配给.columns属性:

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


查看完整回答
反对 回复 2019-06-14
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

重命名特定列

使用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  e0  x  x  x  x  x1  x  x  x  x  x2  x  x  x  x  x

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

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

   X  Y  c  d  e0  x  x  x  x  x1  x  x  x  x  x2  x  x  x  x  x

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

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

   X  Y  c  d  e0  x  x  x  x  x1  x  x  x  x  x2  x  x  x  x  x

在v0.25中,还可以指定errors='raise'如果指定了无效的列到重命名,则引发错误。看见v0.25rename()博士.


重新分配列标题

使用df.set_axis()带着axis=1inplace=False(交回副本)。

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

   V  W  X  Y  Z0  x  x  x  x  x1  x  x  x  x  x2  x  x  x  x  x

这将返回一个副本,但您可以通过设置inplace=True(这是版本<=0.24的默认行为,但将来可能会改变)。

还可以直接分配标头:

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

   V  W  X  Y  Z0  x  x  x  x  x1  x  x  x  x  x2  x  x  x  x  x


查看完整回答
反对 回复 2019-06-14
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

这个rename方法可以接受一个函数,例如:

In [11]: df.columnsOut[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.columnsOut[13]: Index([u'a', u'b', u'c', u'd', u'e'], dtype=object)


查看完整回答
反对 回复 2019-06-14
  • 3 回答
  • 0 关注
  • 570 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信