我正在尝试在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无法使用类型dtype(' 我想创建一个新列,看起来像datetime'2020-06-22 01:00:00'
我真的很沮丧,因为这应该很简单(或者至少我认为是这样)。
答案 0 :(得分:1)
这个问题是由于熊猫版本而发生的,一旦我升级了熊猫版本,这种情况就停止了。
因此显然0.20.2版已针对此特定功能进行了错误
感谢@jezrael的快速响应和帮助。