熊猫结合日期和小时列

时间:2020-06-22 09:36:14

标签: python pandas datetime

我正在尝试在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' 我真的很沮丧,因为这应该很简单(或者至少我认为是这样)。

1 个答案:

答案 0 :(得分:1)

这个问题是由于熊猫版本而发生的,一旦我升级了熊猫版本,这种情况就停止了。

因此显然0.20.2版已针对此特定功能进行了错误

感谢@jezrael的快速响应和帮助。