Python df[';datetime';]=df[';date';]+''+;df[';时间';]>;+;的操作数类型不受支持:';DatetimeArray';和';str';

Python df[';datetime';]=df[';date';]+''+;df[';时间';]>;+;的操作数类型不受支持:';DatetimeArray';和';str';,python,pandas,datetime,Python,Pandas,Datetime,我的df中有 日期和时间参数,我想通过创建日期时间格式来组合 df['time']是对象 df['date']是datetime64[ns] 当你使用这个代码时 df['datetime']=df['date'] + ' ' + df['time'] 我明白了 我该怎么办 我应该只转换df['time']吗?如果是这样,我可以这样做如果需要datetimes添加转换为TimeDelta的时间,因为有python时间也需要转换为字符串: df = pd.DataFrame({'date': pd

我的df中有 日期和时间参数,我想通过创建日期时间格式来组合 df['time']是对象 df['date']是datetime64[ns]

当你使用这个代码时

df['datetime']=df['date'] + ' ' + df['time']
我明白了

我该怎么办


我应该只转换df['time']吗?如果是这样,我可以这样做

如果需要datetimes添加转换为TimeDelta的时间,因为有python时间也需要转换为字符串:

df = pd.DataFrame({'date': pd.date_range('2015-01-01', periods=3),
                   'time': pd.to_datetime(['10:00:10','12:00:00', '05:02:03']).time})

df['datetime'] = df['date'] + pd.to_timedelta(df['time'].astype(str))

print (df)
        date      time            datetime
0 2015-01-01  10:00:10 2015-01-01 10:00:10
1 2015-01-02  12:00:00 2015-01-02 12:00:00
2 2015-01-03  05:02:03 2015-01-03 05:02:03
另一种解决方案是将第一个
日期
时间
转换为字符串,用空格和最后一个调用连接:


第一个解决方案为ValueError:timedelta scalar的类型无效:但是secound非常好。感谢you@rafine-第一个已更改为
df['datetime']=df['date']+pd。要更改为_timedelta(df['time'].astype(str))
,它也应该可以工作。
df = pd.DataFrame({'date': pd.date_range('2015-01-01', periods=3),
                   'time': pd.to_datetime(['10:00:10','12:00:00', '05:02:03']).time})

df['datetime'] = df['date'] + pd.to_timedelta(df['time'].astype(str))

print (df)
        date      time            datetime
0 2015-01-01  10:00:10 2015-01-01 10:00:10
1 2015-01-02  12:00:00 2015-01-02 12:00:00
2 2015-01-03  05:02:03 2015-01-03 05:02:03
df['datetime'] = pd.to_datetime(df['date'].astype(str) + ' ' + df['time'].astype(str))