【问题标题】:Comparing date column of the csv file to today date比较 csv 文件的日期列与今天的日期
【发布时间】:2020-02-05 06:26:16
【问题描述】:

如果日期大于或小于今天,我需要将我的大数据的日期与今天的日期进行比较,以计算另一个列值。

我的代码如下,但我不断收到错误!

我试过Timestamp.now() 但我的python 3.6 无法识别它。

import datetime
def midspread_calcs():
    for row in df_midspread:
        if df_midspread['Date']<datetime.datetime.now():
           df_midspread['Midspread']= df_midspread.Oldrate*df_midspread.Value
        else:
           df_midspread['Midspread']= df_midspread.Newrate*df_midspread.Value 

result = midspread_calcs()

【问题讨论】:

  • 请提供您遇到的错误。另请检查 db_midspread['Date'] 是否为日期格式。
  • 什么是df_midspread
  • df_midspread 是我的数据框的名称
  • 这是我得到的最新错误:ValueError:一个系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

标签: python date compare string-to-datetime


【解决方案1】:

检查 db_midspread['Date'] 的日期时间格式是否正确。你的逻辑是对的

如果不使用以下代码: 最简单的方法是使用 to_datetime:

db_midspread['Date'] = pd.to_datetime(db_midspread['Date'])```

【讨论】:

  • 感谢您的评论,但我已经尝试过这个!没用!
【解决方案2】:

一见钟情的一些重大问题:

1- 你的 for 循环命名错误

    for row in df_midspread:
        if row['Date']<datetime.datetime.now():
           row['Midspread']= row.Oldrate*row.Value
        else:
           row['Midspread']= row.Newrate*row.Value

2- 您调用了函数并将其分配给结果,但您的函数没有return

3- 你应该确保df_midspread['Date'] 是一个日期时间。

【讨论】:

  • 非常感谢您指出所有问题!我拿走了这个功能并返回,但仍然存在同样的问题!听起来我的数据框日期列仍然被识别为字符串,即使我使用了以下内容: df_midspread['Date'] = pd.to_datetime(df_midspread['Date], format='%Y-%m-%d %H :%M:%S')
  • 这是错误:ValueError:一个系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。有什么想法吗?
  • 能否提供样本数据,以便我重现错误。
  • 如果有帮助,我已经提供了虚拟数据的图像!感谢您的宝贵时间
  • 感谢您的笔记!启发我解决这个问题:)
【解决方案3】:

感谢您的建议,现在可以使用了 :) 对于 df_midspread['Date'] 中的行:

    if row<datetime.datetime.now():
       df_midspread['Midspread']= df_midspread.Oldrate*df_midspread.Value
    else:
       df_midspread['Midspread']= df_midspread.Newrate*df_midspread.Value  

【讨论】:

    猜你喜欢
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 2014-09-09
    相关资源
    最近更新 更多