如何将 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 中两列中的两个日期和时间合并为一列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用实际数据帧中两列中的值索引另一个数据帧,从而在实际数据框中创建列