我想检查date1
列是否小于另一个date2
列,然后创建一个新列或New Column
并分配1,0,否则。如果计算为NaT
,则将NaT
保存到新创建的列。这是我的审判。
if df['date1'] < df['date2'] == True:
df['New Column'] = '1'
elif df['date1'] < df['date2'] == 'NaT':
df['New Column'] = 'NaT'
else:
df['New Column'] = '0'
但是这似乎不起作用并且抛出ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我仍在学习Python,对此的任何帮助将不胜感激。
谢谢你。
问问题时,请提供以下可重复的数据,这样回答您问题的人就不必创建它。
df = pd.DataFrame({
'date1':['2000-03-01', '2000-03-02'],
'date2':['2000-04-01', '2000-02-02'],
})
print(df)
date1 date2
0 2000-03-01 2000-04-01
1 2000-03-02 2000-02-02
首先创建将值设置为零的列。
df['New Column'] = '0'
然后过滤并设置值:
df.loc[df['date1'] < df['date2'], 'New Column'] = '1'
print(df)
date1 date2 New Column
0 2000-03-01 2000-04-01 1
1 2000-03-02 2000-02-02 0
我不确定在这种情况下您打算如何使用'NaT'。也许正在申请isat?