替换熊猫数据框中的值

时间:2019-08-14 15:36:21

标签: pandas

我正在寻找一种基于值的大小替换大小的Python方法。假设我有一个数据框:

ds = pandas.DataFrame({'x' : [4,3,2,1,5], 'y' : [4,5,6,7,8]})

我想将x上小于2乘以2和大于4乘以4的值替换。并且与y值类似,将小于5乘以5的值和大于7乘以7的值替换为得到这个数据框:

ds = pandas.DataFrame({'x' : [4,3,2,2,4], 'y' : [5,5,6,7,7]})

我通过在行上进行迭代来做到这一点,但实际上是丑陋的,采用了更多的pandas-pythonic方式(基本上我想消除极值)

2 个答案:

答案 0 :(得分:1)

您可以使用clip

进行检查
ds.x.clip(2,4)
Out[42]: 
0    4
1    3
2    2
3    2
4    4
Name: x, dtype: int64
#ds.x=ds.x.clip(2,4)
#ds.y=ds.y.clip(5,7)

答案 1 :(得分:1)

执行此操作的一种方法如下:

>>> ds[ds.x.le(2) ] =2
>>> ds[ds.x.ge(4) ] =4
>>> ds
   x  y
0  4  4
1  3  5
2  2  6
3  2  2
4  4  4