【跟着stackoverflow学Pandas】Renaming columns in pandas-列的重命名

32 篇文章 1 订阅
8 篇文章 0 订阅

最近做一个系列博客,跟着stackoverflow学Pandas。

专栏地址:http://blog.csdn.net/column/details/16726.html

pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序:
https://stackoverflow.com/questions/tagged/pandas?sort=votes&pageSize=15

Renaming columns in pandas - 列的重命名

https://stackoverflow.com/questions/11346283/renaming-columns-in-pandas

方法1

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

上面的方法直接给columns属性赋值, 如果需要对单个列名进行修改,可以

col_names = df.columns.values
col_names[0] = 'new_name'
df.columns = col_names 

但是绝对不能 df.columns.values[0] = 'new_name', df.columns.values 是不允许修改的。

方法2

如果仅对特定的列进行重命名,我们可以采用rename函数,进行操作。

df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# OR
new_df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
# inplace = True 目的是修改原有Dataframe,不生成新的 DataFrame

参考
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rename.html

# rename 可以修改 Series 的index值
>>> s = pd.Series([1, 2, 3])
>>> s
0    1
1    2
2    3
dtype: int64
>>> s.rename("my_name") # scalar, changes Series.name
0    1
1    2
2    3
Name: my_name, dtype: int64
>>> s.rename(lambda x: x ** 2)  # function, changes labels
0    1
1    2
4    3
dtype: int64
>>> s.rename({1: 3, 2: 5})  # mapping, changes labels
0    1
3    2
5    3
dtype: int64
>>> df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
>>> df.rename(2)
Traceback (most recent call last):
...
TypeError: 'int' object is not callable
>>> df.rename(index=str, columns={"A": "a", "B": "c"})
   a  c
0  1  4
1  2  5
2  3  6
>>> df.rename(index=str, columns={"A": "a", "C": "c"})
   a  B
0  1  4
1  2  5
2  3  6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索者v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值