Pandas 如何使用np.where进行日期偏移

Pandas 如何使用np.where进行日期偏移,pandas,Pandas,下面是我的数据框数据['date'] 0 61-1_1 1 61-1_2 2 61-1_3 3 61-1_4 4 61-1_5 如何使用np应用我的data['date']=data.date pd.DateOffset(years=100),其中如果要减去当前年份以上的所有日期时间,则只需对data['date']进行少量更改即可: data['date'] = pd.to_datetime(data['date

下面是我的数据框
数据['date']

0         61-1_1
1         61-1_2
2         61-1_3
3         61-1_4
4         61-1_5

如何使用
np应用我的
data['date']=data.date pd.DateOffset(years=100)
,其中

如果要减去当前年份以上的所有日期时间,则只需对
data['date']
进行少量更改即可:

data['date'] = pd.to_datetime(data['date'], format='%y-%m_%d')
print (data)
        date
0 2061-01-01
1 2061-01-02
2 2061-01-03
3 2061-01-04
4 2061-01-05

current_year = pd.to_datetime('now').year
data['date'] = np.where(data['date'].dt.year > current_year, 
                        data['date'] - pd.DateOffset(years=100), 
                        data['date'])
print (data)
        date
0 1961-01-01
1 1961-01-02
2 1961-01-03
3 1961-01-04
4 1961-01-05

如果要减去解决方案有效的一年中的所有日期时间,只需对
数据['date']
进行少量更改即可
数据

data['date'] = pd.to_datetime(data['date'], format='%y-%m_%d')
print (data)
        date
0 2061-01-01
1 2061-01-02
2 2061-01-03
3 2061-01-04
4 2061-01-05

current_year = pd.to_datetime('now').year
data['date'] = np.where(data['date'].dt.year > current_year, 
                        data['date'] - pd.DateOffset(years=100), 
                        data['date'])
print (data)
        date
0 1961-01-01
1 1961-01-02
2 1961-01-03
3 1961-01-04
4 1961-01-05

如果需要
np,则有一些条件。where
?@jezrael panda do从1970年开始,where before。所以我需要用np来抵消100年。where@jezrael
np.where(data['date].dt.year>current_year,data-pd.DateOffset(years=100),data)
我有点困惑,您的解决方案不起作用?@jezrael如果data['date']>current year,那么我们必须给出offset(100年)另一方面,我们只需要给出当前年份。如果需要,这里有一些条件。
np.where
?@jezrael panda从1970年开始,在哪里之前。所以我需要用np来抵消100年。where@jezrael
np.where(data['date].dt.year>current_year,data-pd.DateOffset(years=100),data)
我有点困惑,您的解决方案不起作用?@jezrael如果data['date']>current year,那么我们必须给出offset(100年),否则我们只需要给出当前年份