gpt4 book ai didi

python - Pandas 日期和文本条件

转载 作者:行者123 更新时间:2023-12-01 09:33:18 25 4
gpt4 key购买 nike

给定一个 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

我的目标是添加一个新列,其中:如果 text = "abc"并且 Date1 是从现在起 90 天后的结果,则为“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

有什么建议吗?非常感谢!

最佳答案

您的代码中有 3 个错误:

  1. 通过 == operator 测试变量的相等性.
  2. 确保将各个条件括起来 avoid chained comparisons .
  3. 对于90天内的日期,请检查您的测试数据是否大于days90

结合起来,以下代码将起作用:

df['NewText'] = np.where((df['Text1'] == "abc") & (df['Date1'] > days90), "New", np.nan)

关于python - Pandas 日期和文本条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com