如何替换列值的前2位,其中值在2019到2099之间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何替换列值的前2位,其中值在2019到2099之间相关的知识,希望对你有一定的参考价值。
我有一个大约有2500行和6列的Python数据框。对于一个特定的列,我想替换条件语句中每行的前2个字符。
输入:
S.No year
1 2019
2 2020
3 2021
4 2005
5 2056
输出:
S.No year
1 1919
2 1920
3 1921
4 2005
5 1956
代码:
import pandas ad pd
if data[(data['year'] >= 2019) & (data['year'] < 2099)]:
data['year'] = data['year'].str[:2].replace('20','19')
无法使用此脚本。
答案
我认为最简单的解决方案是从条件匹配的行中减去100
:
m = (data['year'] >= 2019) & (data['year'] < 2099)
data['year'] = data['year'].mask(m, data['year'] - 100)
或:
data.loc[m, 'year'] -= 100
print (data)
S.No year
0 1 1919
1 2 1920
2 3 1921
3 4 2005
4 5 1956
以上是关于如何替换列值的前2位,其中值在2019到2099之间的主要内容,如果未能解决你的问题,请参考以下文章