给出一个df:
Date1 Text1
2018-03-20 00:00:00 abc
2018-04-01 00:00:00 abc
2018-01-01 00:00:00 abc
2018-04-01 00:00:00 xyz
abc
我的目标是在以下位置添加新列: if text =" abc"和Date1从现在开始是90天,然后是#34; New" 输出将是:
Date1 Text1 NewText
2018-03-20 00:00:00 abc New
2018-04-01 00:00:00 abc New
2018-01-01 00:00:00 abc
2018-04-01 00:00:00 xyz
abc
这就是我所拥有的:
days90 = date.today() - timedelta(90)
df['NewText'] = np.where(df['Text1'] = "abc" & df['Date1'] < pd.to_datetime(days90), "New", np.nan)
然而,我一直遇到错误 AttributeError:只能使用带有字符串值的.str访问器,它在pandas中使用np.object_ dtype
有什么建议吗?非常感谢!
答案 0 :(得分:1)
您的代码中有3个错误:
==
operator测试变量的相等性。days90
。合并后,以下代码将起作用:
df['NewText'] = np.where((df['Text1'] == "abc") & (df['Date1'] > days90), "New", np.nan)