Is there a way to subtract 3 from every digit of a number?

MRAB python at mrabarnett.plus.com
Sat Feb 20 11:47:17 EST 2021


On 2021-02-20 14:40, C W wrote:
> Hello everyone,
> 
> I'm curious if there is a way take number and back each digit by 3 ?
> 
> 2342 becomes 9019
> 8475 becomes 5142
> 5873 becomes 2540
> 
> The tricky part is that 2 becomes 9, not -1.
> 
> Here's my toy example and what I attempted,
>> test_series = pd.Series(list(['2342', '8475', '5873']))
>> test_series
> 0    2342
> 1    8475
> 2    5873
> dtype: object
> 
>> test_series.str.split('')
> [, 2, 3, 4, 2, ]
> [, 8, 4, 7, 5, ]
> [, 5, 8, 7, 3, ]
> dtype: object
> 
> What a good approach to this? Is there a method or function that should be
> handling this?
> 
Have a look at the 'translate' method of the 'str' class.


More information about the Python-list mailing list