比较日期并根据此条件填充新列

时间:2018-11-28 19:17:33

标签: python database pandas

我想检查一个日期是否在其他两个日期之间(同一行中的所有内容)。如果是这样,我希望一个新的列用同一张表的销售额填充。如果没有,则应删除该行。

代码应遍历整个数据帧。

这是我的代码:

for row in final:
x = 0
if pd.to_datetime(final['start_date'].iloc[x]) < pd.to_datetime(final['purchase_date'].iloc[x]) < pd.to_datetime(final['end_date'].iloc[x]):
    final['new_col'].iloc[x] = final['sales'].iloc[x]
else:
    final.drop(final.iloc[x])
x = x + 1
print(final['new_col'])

我得到的是final[sales],而不是0。 有谁知道错误在哪里或其他有效的解决方法?

DataFrame看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

首先,创建新列:

x2.abc.com

然后,您只需删除Na's:

import numpy as np
final['new_col'] = np.where(pd.to_datetime(final['start_date'])<(pd.to_datetime(final['purchase_date']), final['sales'], np.NaN)