gpt4 book ai didi

python - 给定以下约束,如何将一些数字连接到另一个数字?

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:42 25 4
gpt4 key购买 nike

我正在规范化 pandas 数据框中的一些年份值。

   years

0 2011
1 2012
2 2050
3 11
4 23
5 01
....
n 2015

如您所见,有些值是错误的,因为它们必须是 4 位数字。因此,我想将它们转换成四位数字:

   year

0 2011
1 2012
2 2050
3 2011
4 2023
5 2001
...
n 2015

对于上述情况,在 previous question 中我了解到您可以使用函数替换来完成此任务:

df['years'].replace('\b\d{2}\b.*?', r'20\2', regex=True)

我尝试了不同的正则表达式:

^[0-9]{2}
^[0-9]{2}.*
(\d\d)*
^(\d{2})
r'\b\d{2}\b'

但是,这些都不起作用。因此,如何用四位数字(添加 20)对上述数据帧进行归一化?

最佳答案

df.years = pd.to_numeric(df.years, errors='coerce')

In [12]: df
Out[12]:
years
0 2011
1 2012
2 2050
3 11
4 23
5 1
6 2015

In [13]: df.loc[df.years <= 50, 'years'] += 2000

In [14]: df
Out[14]:
years
0 2011
1 2012
2 2050
3 2011
4 2023
5 2001
6 2015

更新:转换为字符串:

In [35]: df
Out[35]:
years
0 2011.0
1 2012.0
2 2050.0
3 2011.0
4 2023.0
5 2001.0
6 NaN
7 2015.0

In [36]: df.dtypes
Out[36]:
years float64
dtype: object

In [37]: df.years.where(df.years.notnull(), '')
Out[37]:
0 2011
1 2012
2 2050
3 2011
4 2023
5 2001
6
7 2015
Name: years, dtype: object

关于python - 给定以下约束,如何将一些数字连接到另一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com