Это должно работать. Сначала вам нужно преобразовать целые числа в строки, чтобы вы могли использовать метод .str
.
m = df['maturity_date'].astype('str').str[:4].astype(int) > 2261
Проблема в том, что если вы не хотите вызывать .str для целочисленного значения. Когда вы это сделаете, он преобразует его в NaN
, что затем вызывает проблему с преобразованием в целое число.
Например:
import pandas as pd
df = pd.DataFrame({'value': [0, '0', '0000', '000']})
df.value.str[:4]
#0 NaN
#1 0
#2 0000
#3 000
#Name: value, dtype: object
df.value.astype('str').str[:4]
#0 0
#1 0
#2 0000
#3 000
#Name: value, dtype: object