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

justifying the YEAR column digit in Python

我有一个大数据集。我用熊猫将 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