如果它大于所述日期,如何绕过此错误以使列为零? " TypeError: invalid type promotion "


df_main['month_1']= np.where(df_main['month_1'] >='2020-02-01',0,df_main['month_1'])

如果日期是 2020 年 2 月 1 日,我需要month_1列中的所有项目都为零。 我也尝试了"02/01/2020"格式,但不起作用。

由于您的列数据类型是时间戳,因此您不能使用 str'2020-02-01'与您的列进行比较,因此您还需要一个时间戳值:pd.Timestamp(2020, 2,1)

你可以使用熊猫。系列地图:

df_main['month_1'] = df_main['month_1'].map(lambda x: 0 if x >= pd.Timestamp(2020, 2,1) else x)

或者,您可以筛选和分配:

df_main['month_1'][ df_main['month_1'] >= pd.Timestamp(2020, 2,1)] = 0 

最新更新