pandas replace 替换功能function

pandas replace 替换功能function

  1. list like replace method
  2. dict like replace method
  3. regex expression
import pandas as pd
import numpy as np
s = pd.Series([0,1,2,3,4])
s.replace(0,5)  # single value to replace 
0    5
1    1
2    2
3    3
4    4
dtype: int64
df = pd.DataFrame({'A':[0,1,2,3,4],
                  "B":[5,6,7,8,9],
                  "C":['a','b','c','d','e']})
df.replace(0,5)  # replace all 0 to 5
ABC
055a
116b
227c
338d
449e
df  # the default parameter in_place= False
# DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')
# to_place can be number,string list or dict and even regex expression
# limit   Maximum size gap to forward or backward fill.
ABC
005a
116b
227c
338d
449e
1. list like replace method
df.replace([1,2,3,4],[4,3,2,1])  # content to replace . to_replace=[1,2,3,4],value=[4,3,2,1]
ABC
005a
146b
237c
328d
419e
df.replace([1,2,3,4],100)  # to_replace=[1,2,3,4],value=4
ABC
005a
11006b
21007c
31008d
41009e
df.replace([1,2],method='bfill')   # . like fillna with mehtod bfill(backfill), and the default mehtod was pad
ABC
005a
136b
237c
338d
449e
2. dict like replace method
df.replace({2:20,6:100})  # to_replace =2 value=20,to_replace=6,value =100
ABC
005a
11100b
2207c
338d
449e
df.replace({'A':2,'B':7},1000)  # . to_replace={'A':2,"B":7}, value=1000
ABC
005a
116b
210001000c
338d
449e
df.replace({'A':{1:1000,4:20}})   # in colomn A to_replace=1,value=1000, to_replace=4, value=20
ABC
005a
110006b
227c
338d
4209e
3. regex expression
df = pd.DataFrame({'A':['bat','foot','bait'],
                  'B':['abc','bar','foot']})
df.replace(to_replace=r'^ba.$',value='vvvv',regex=True)  # to define to_replace and value in the function
AB
0vvvvabc
1footvvvv
2baitfoot
df.replace({'A': r'^ba.$'}, {'A': 'new'}, regex=True)  # in column A  to_replce=r'^ba.$' value='new'
AB
0newabc
1footbar
2baitfoot
df.replace({'A':{r"^ba.$":"new"}},regex=True)  #  same as above 
AB
0newabc
1footbar
2baitfoot
df.replace(regex=r'^ba.$',value='vvv')  # in the whole dataframe 
AB
0vvvabc
1footvvv
2baitfoot
df.replace(regex={r'^ba.$':'vvv','foot':'xyz'})
AB
0vvvabc
1xyzvvv
2baitxyz
df.replace(regex=[r'^ba.$','foo.$'],value='vvv')
AB
0vvvabc
1vvvvvv
2baitvvv

posted on 2018-12-22 15:22 多一点 阅读(...) 评论(...) 编辑 收藏

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值