如何基于python中其他列的计算将值附加到新列?

问题描述 投票:0回答:1

我想检查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,对此的任何帮助将不胜感激。

谢谢你。

python dataframe if-statement
1个回答
1
投票

问问题时,请提供以下可重复的数据,这样回答您问题的人就不必创建它。

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?

© www.soinside.com 2019 - 2024. All rights reserved.