首页 > 解决方案 > 使用条件减去两列

问题描述

在此处输入图像描述我有两个日期列,我想根据条件减去这两列。首先检查第一列中的所有空格,然后检查第二列是否有空格,第三个条件检查减去的日期是否小于一个。如果满足这些条件,则执行两列的减法。像这样的东西:

'''if [Recommendation signed] = null or [Executed Date] = null or Duration.Days([Contract Executed Date]-[Recommendation signed]) < 1 then null else Duration.Days([Contract Executed Date]-[Recommendation签])'''

标签: python-3.xpandasfunctionif-statement

解决方案


您可以使用应用功能来做到这一点。例如,您想将该值存储到一个名为 的新列day difference中。

确保这些是日期时间列(如果它们不是应用to_datetime功能)。

df['Recommendation signed'] = pd.to_datetime(data['Recommendation signed']).dt.date
df['Executed Date'] = pd.to_datetime(data['Executed Date']).dt.date
df['Contract Executed Date'] = pd.to_datetime(data['Contract Executed Date']).dt.date

def substract_columns(row):
  if pd.isnull(row['Recommendation signed']) or pd.isnull(row['Executed Date']) or ((row['Contract Executed Date'] - row['Recommendation signed']) == '0 days'):
    return None
  else:
    row['Contract Executed Date'] - row['Recommendation signed']

df['day difference'] = df.apply(substract_columns, axis=1)

希望这可以帮助。


推荐阅读