【发布时间】:2023-02-20 15:40:14
【问题描述】:
我是 Python 的新手,发现它非常令人沮丧。 我有一个正在导入的 CSV,但它读取的日期列不正确。 在月份列中,我有每个月的第一天 - 所以它应该是 (yyyy-mm-dd):
2020-01-01
2020-02-01
2020-03-01
etc
然而,它读作 (yyyy-dd-mm)
2020-01-01
2020-01-02
2020-01-03
etc
我尝试了 stackoverflow 和其他网站的几种转换函数,但它们要么不起作用,要么什么都不做。
我的导入如下:
try:
collections_data = pd.read_csv('./monthly_collections.csv')
print("Collections Data imported successfully.")
except error as e:
print("Error importing Collections Data!")
我在导入时尝试了 parse_dates 参数,但它没有帮助。
如果我再试试这个:
temp = pd.to_datetime(collections_data['Collections Month'], format='%m/%d/%Y')
temp
然后我得到
你可以看到,它把月份读成天——换句话说,它显示了一个月中的每一天,而不是每个月的第一天。
我非常感谢一些帮助来更正这些日期,因为我需要对它们进行一些日期计算,并根据此日期连接两个表 - 这将是我的下一个问题。
亲切的问候
【问题讨论】:
-
您可以发布您尝试过但在从 csv 中读取时无效的代码吗
-
使用
pd.read_csv()的dayfirst = Truekwarg。对于不明确的日期,默认行为是假定日期采用月份优先格式。在您尝试使用pd.to_datetime()时,您已经使用了format='%m/%d/%Y',它明确表示您的日期采用月份优先格式,如果您切换%m和%d的位置,那也可以。