[英]How to create a datetime column in pandas based on two columns date and time?
Lets say I have following DataFrame
:可以说我有以下
DataFrame
:
import pandas as pd
df = pd.DataFrame({"Date":["2022-01-01", "2022-01-02", "2022-01-03"], "Time":[0,1,10]})
I want another column which is a datetime
using the Date and the Time Columns.我想要另一列是使用
datetime
和时间列的日期时间。
Date Time DateTime
0 2022-01-01 0 2022-01-01 00:00:00
1 2022-01-02 1 2022-01-02 01:00:00
2 2022-01-03 10 2022-01-03 10:00:00
I tried this failed solution:我尝试了这个失败的解决方案:
df["DateTime"] = str(df["Date"]) + " " + str(df["Time"]) + ":00"
Which outputs:哪些输出:
>>> df
Date Time DateTime
0 2022-01-01 0 0 2022-01-01\n1 2022-01-02\n2 2022-01...
1 2022-01-02 1 0 2022-01-01\n1 2022-01-02\n2 2022-01...
2 2022-01-03 10 0 2022-01-01\n1 2022-01-02\n2 2022-01...
You can just do Date
and Time
add with to_datetime
and to_timedelta
您可以使用
to_datetime
和to_timedelta
添加Date
和Time
df['new'] = pd.to_datetime(df['Date']) + pd.to_timedelta(df['Time'],unit='hour')
df
Out[388]:
Date Time new
0 2022-01-01 0 2022-01-01 00:00:00
1 2022-01-02 1 2022-01-02 01:00:00
2 2022-01-03 10 2022-01-03 10:00:00
One solution would be the following:一种解决方案如下:
df["DateTime"] = df["Date"].astype(str) + " " + df["Time"].astype(str) + ":00"
Then convert to datetime
:然后转换为
datetime
时间:
df["DateTime"] = pd.to_datetime(df["DateTime"])
Hence the output is as expected:因此 output 符合预期:
>>> df
Date Time DateTime
0 2022-01-01 0 2022-01-01 00:00:00
1 2022-01-02 1 2022-01-02 01:00:00
2 2022-01-03 10 2022-01-03 10:00:00
df['date'] = [d.date() for d in df['datetime']]
df['time'] = [d.time() for d in df['datetime']]
df['date']= pd.to_datetime(df['date'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.