【发布时间】:2021-04-28 00:41:39
【问题描述】:
我正在尝试将 2 列(1 和 2)解析为日期时间,同时我还读取了 csv 文件的第 6 列和第 12 列。代码如下。由于某种原因,我收到以下错误:
TypeError: strptime() 参数 1 必须是 str,而不是 float
date_parse = lambda d,t: datetime.strptime(
d+t,
"%d/%m/%Y%H:%M:%S"
)
data_frame = pd.read_csv(
full_path_file_name, sep=";",
header=0,
usecols=[1, 2, 6, 12],
skiprows=6,
parse_dates={'datetime': ['Date','Time']},
date_parser=date_parse
)
有没有人有任何建议来摆脱这个错误?
您可以查看dataset 谢谢
【问题讨论】:
-
你必须在你的 lambda 函数中添加一个打印,这样你才能看到 csv 的哪一行产生了错误,然后发布该行。
-
如何在此处添加打印语句?我不明白你的意思。
-
为什么要在 lambda 函数中写 d,t?
-
d 代表日期,t 代表时间我写了 d 和 t,因为日期和时间位于两个不同的列中:csv 文件的第 1 列和第 2 列。
-
请删除您的 lambda 函数并将其添加到您的代码中:
def date_parse(d, t): print(d, t); return datetime.strptime(d+t, "%d/%m/%Y%H:%M:%S")