如何替换列值的前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之间的主要内容,如果未能解决你的问题,请参考以下文章

按其他列值获取列中每个唯一值的前 x% 行

Ext JS:如何在具有多个列值的网格中查找记录

如果相同的列值在多行中重复,则 UPDATE - SQL / MYSQL

如何从熊猫中的前一行复制缺失的列值[重复]

如果列值在一定范围内彼此接近,则删除 pandas 行

如何连接列值在一定范围内的两个数据框?