【发布时间】:2020-10-12 03:19:02
【问题描述】:
我正在尝试在我的 df 中合并 2 列:小时和日期。 这是我的数据样本:
HOUR data_date
0 0 2020-06-22
1 1 2020-06-22
2 2 2020-06-22
3 3 2020-06-22
4 4 2020-06-22
5 0 2020-06-22
6 0 2020-06-22
7 0 2020-06-22
8 0 2020-06-22
9 0 2020-06-22
10 1 2020-06-22
11 1 2020-06-22
12 1 2020-06-22
13 1 2020-06-22
14 2 2020-06-22
15 2 2020-06-22
16 2 2020-06-22
17 2 2020-06-22
18 3 2020-06-22
19 3 2020-06-22
20 3 2020-06-22
21 3 2020-06-22
22 3 2020-06-22
23 4 2020-06-22
24 4 2020-06-22
25 4 2020-06-22
26 4 2020-06-22
27 0 2020-06-22
28 0 2020-06-22
29 0 2020-06-22
54 1 2020-06-22
55 1 2020-06-22
56 1 2020-06-22
57 1 2020-06-22
58 1 2020-06-22
59 2 2020-06-22
60 2 2020-06-22
61 2 2020-06-22
62 2 2020-06-22
63 2 2020-06-22
64 2 2020-06-22
65 2 2020-06-22
66 2 2020-06-22
67 3 2020-06-22
68 3 2020-06-22
69 3 2020-06-22
70 3 2020-06-22
我尝试了我在网上搜索的不同解决方案,例如:
data['Datetime'] = [data.loc[x,'data_date'] + dt.timedelta(hours = int(data.loc[x,'HOUR'])) for x in list(data.index)]
这会返回未定义 dt 的错误。
也试过了:
pd.to_datetime(data.data_date) + pd.to_timedelta(data.HOUR, unit='h')
这给了我这个错误: {TypeError}ufunc 'isfinite' 不支持输入类型,并且输入无法根据强制转换规则 ''safe'' 安全地强制转换为任何支持的类型
也试过了:
data['data_date'] += pd.to_timedelta(data['HOUR'], unit='h')
这给了我这个错误:TypeError: ufunc add cannot use operands with types dtype(' 我想创建一个类似于 datetime '2020-06-22 01:00:00' 的新列
我真的很沮丧,因为这应该很简单[或者至少我认为会是这样]。
【问题讨论】:
-
pd.to_datetime(data.data_date) + pd.to_timedelta(data.HOUR, unit='h')对我来说可以很好地处理您的数据。 -
运行此代码时出现错误:{TypeError}ufunc 'isfinite' 不支持输入类型,并且无法根据转换规则安全地将输入强制转换为任何支持的类型''安全''