我想检查一个日期是否在其他两个日期之间(同一行中的所有内容)。如果是这样,我希望一个新的列用同一张表的销售额填充。如果没有,则应删除该行。
代码应遍历整个数据帧。
这是我的代码:
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看起来像这样:
答案 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)