我想从我的当前值重新分配/替换新值
20000123
19850123
19880112
19951201
19850123
20190821
20000512
19850111
19670133
19850123
如您所见,数据中包含19670133(YYYYMMDD),这意味着该日期不存在,因为没有包含33天的月份。因此,我想将其重新分配到月末。我尝试将其分配到月末,并且成功了。但是,当我尝试用新值替换旧值时,出现了问题。我尝试做的是:
for x in df_tmp_customer['date']:
try:
df_tmp_customer['date'] = df_tmp_customer.apply(pd.to_datetime(x), axis=1)
except Exception:
df_tmp_customer['date'] = df_tmp_customer.apply(pd.to_datetime(x[0:6]+"01")+ pd.offsets.MonthEnd(n=0), axis=1)
这部分是一个使它月底:
pd.to_datetime(x[0:6]+"01")+ pd.offsets.MonthEnd(n=0)
2条答案
按热度按时间7fhtutme1#
在大型数据集上可能效率不高,但可以使用pendument.parse()来完成
1u4esq0p2#
对于矢量解决方案,可以用途:
df['date']
是字符串数据类型。如果是整数数据类型,则使用df.loc[m, 'date'].floordiv(100)
代替df.loc[m, 'date'].str[:6]
。*输出量: