如何将 DataFrame 中两列中的两个日期和时间合并为一列? [复制]

Posted

技术标签:

【中文标题】如何将 DataFrame 中两列中的两个日期和时间合并为一列? [复制]【英文标题】:How to combine two date and time from two columns in DataFrame to one column? [duplicate] 【发布时间】:2021-08-11 09:27:23 【问题描述】:

有了这个程序代码

df['forecast_day'] =  pd.to_datetime(df['forecast_day'], format='%Y%m%d')
df['forecast_time'] = pd.to_datetime(df['forecast_time'], format='%H%M')

我当前在 DataFrame 中的日期和时间列如下所示。

    forecast_day        forecast_time
0   2021-05-05 00:00:00 1900-01-01 12:00:00
1   2021-05-05 00:00:00 1900-01-01 11:00:00
2   2021-05-05 00:00:00 1900-01-01 10:00:00
3   2021-05-05 00:00:00 1900-01-01 09:00:00
4   2021-05-05 00:00:00 1900-01-01 08:00:00
5   2021-05-05 00:00:00 1900-01-01 07:00:00
6   2021-05-05 00:00:00 1900-01-01 06:00:00
7   2021-05-05 00:00:00 1900-01-01 05:00:00
8   2021-05-05 00:00:00 1900-01-01 04:00:00
9   2021-05-05 00:00:00 1900-01-01 03:00:00
10  2021-05-05 00:00:00 1900-01-01 02:00:00

合并后的列应如下所示:

    forecast_day&time       
0   2021-05-05 12:00:00
1   2021-05-05 11:00:00
2   2021-05-05 10:00:00
3   2021-05-05 09:00:00
4   2021-05-05 08:00:00
5   2021-05-05 07:00:00
6   2021-05-05 06:00:00
7   2021-05-05 05:00:00
8   2021-05-05 04:00:00
9   2021-05-05 03:00:00
10  2021-05-05 02:00:00

【问题讨论】:

这能回答你的问题吗? Combine Date and Time columns using python pandas 使用此代码 pd.to_datetime(df['forecast_day'] + ' ' + df['forecast_time']) 我收到了一个错误,例如 +: 'DatetimeArray' 和'str' 因为您已经将两列都转换为日期时间,所以请使用pd.to_datetime(df['forecast_day'].astype(str)+' '+df['forecast_time'].dt.time.astype(str)) 【参考方案1】:

从各个列中取出日期和时间,将它们转换为字符串后添加,然后将整个列转换为日期时间类型,

df['new_column'] = pd.to_datetime(df.apply(lambda x: str(x['forecast_day'].date()) + " " + str(x['forecast_time'].time()), axis=1))

【讨论】:

以上是关于如何将 DataFrame 中两列中的两个日期和时间合并为一列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 中的验证器检查两个表中两列的唯一性

查找DataFrame中两列之间的时间差[重复]

如何使用实际数据帧中两列中的值索引另一个数据帧,从而在实际数据框中创建列

使用python返回excel中两个不同文件中两列之间的差异

如何删除R中两列中具有相同值但ID不同的行[重复]

如何将两列中的日期和时间放入pandas to_datetime并设置为索引[重复]