我尝试遍历数据帧每行中的时间戳,以查看该时间戳是在特定日期之前还是之后。另外,我想在dataframe中创建一个新列,指定日期是在指定日期之前还是之后。你知道吗
这是我使用的代码:
df['created_at'] = pd.to_datetime(df['created_at'], errors='coerce')
for row in df.iterrows():
if df[(df['created_at'] >= '2019-03-15')]:
df['within_date_range'] = "True"
else:
df['within_date_range'] = "False"
但是,上面的代码给了我这个错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如有任何澄清,将不胜感激。谢谢!你知道吗
正如在注释中提到的,您真的不需要循环。 但是回答你的确切问题,你的错误来源是这样的表达:
if df[(df['created_at'] >= '2019-03-15')]:
。你知道吗实际上,操作
df[some_condition_here]
返回一个新的DataFrame
,并且不清楚如何将DataFrame
强制转换为boolean
值(它也适用于任何类:dog = new Dog()
实例是true还是false?)这就是为什么你会犯错。你知道吗
或者你也可以用np.哪里函数来获取条件
相关问题 更多 >
编程相关推荐