证明 Python 中的 YEAR 列数字的合理性



我有一个大型数据集。我用熊猫将CSV转换为数据帧。该列包括从 1965 年到 2015 年的年份。此列的示例类似于

1965.0
66.0
67.0
.
.
.
69.0
1970.0
71.0
.
.
79.0
1980.0
. 
.
.
2000.0
1.0
2.0
.
.
.
15.0

所以我要问你的问题是,如何在没有最后一个 .0 的情况下将所有这些列更改为 4 位格式

顺便说一句,当我使用 .info(( 检查我的数据时,此列是:

Year                51 non-null    object

谢谢

您可以将列转换为float,应用分别添加 1900 或 2000 的自定义函数。 如果对你更有用,则将其输出转换为类型int。前任:

import pandas as pd
df = pd.DataFrame({'y': ['1970.0',
'71.0',
'79.0',
'1980.0',
'2000.0',
'1.0',
'2.0',
'15.0']})
def to_4digit(i):
if i < 1900:
if i >= 65:
return 1900 + i
return 2000 + i
return i
df['y'] = df['y'].astype(float).apply(to_4digit).astype(int)
# df['y']
# 0    1970
# 1    1971
# 2    1979
# 3    1980
# 4    2000
# 5    2001
# 6    2002
# 7    2015

最新更新