如何将日期列和时间列合并

4
我有类似这样的数据。
        Date        Time     Open     High      Low    Close  Volume
0      2013.07.09   7:00  101.056  101.151  101.016  101.130    1822
1      2013.07.09   8:00  101.130  101.257  101.128  101.226    2286
2      2013.07.09   9:00  101.226  101.299  101.175  101.180    2685
3      2013.07.09  10:00  101.178  101.188  101.019  101.154    2980
4      2013.07.09  11:00  101.153  101.239  101.146  101.188    2623

如何将日期列和时间列合并为一个日期时间列。 我想知道如果我这样做是否需要将字符串更改为日期格式。 提前感谢您。
2个回答

16
如果您的“日期”列是时间戳,那么您需要将其转换为字符串并进行添加,然后再将其转换回时间戳。
df['Datetime'] = pd.to_datetime(df['Date'].apply(str)+' '+df['Time'])

输出:

        日期       时间     开盘价      最高价      最低价    收盘价   成交量   \
0 2013-07-09   7:00  101.056  101.151  101.016  101.130    1822   
1 2013-07-09   8:00  101.130  101.257  101.128  101.226    2286   
2 2013-07-09   9:00  101.226  101.299  101.175  101.180    2685   
3 2013-07-09  10:00  101.178  101.188  101.019  101.154    2980   
4 2013-07-09  11:00  101.153  101.239  101.146  101.188    2623
日期时间 0 2013-07-09 07:00:00 1 2013-07-09 08:00:00 2 2013-07-09 09:00:00 3 2013-07-09 10:00:00 4 2013-07-09 11:00:00

非常感谢Bharath Shetty。您能告诉我如何指定哪些数据是字符串、日期或时间格式吗? - Tanakorn Taweepoka
1
你可以使用 print(df.dtypes) 来查看每列的数据类型。 - Bharath M Shetty
@ Bharath Shetty,如何将这个新列替换为我的数据框中的日期和时间列? - Tanakorn Taweepoka
获取日期时间列后,删除其余列,即 df.drop(df[['Date','Time']], axis=1) - Bharath M Shetty

1
dataframe["Date Time"] = dataframe["Date"].map(str) + dataframe["Time"]

更新

格式化日期可以使用

dataframe["Date Time"] =pd.to_datetime(dataframe["Date"].map(str) +'-'+ dataframe["Time"])

而不是替换,您可以从数据框中删除那些DateTime列。像这样:
del dataframe["Date"], dataframe["Time"]

感谢R.A.Munna,但我认为这不是日期格式,对吧。如何更改为日期时间格式?我希望这个新列将替换数据框中的日期和时间列。 - Tanakorn Taweepoka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接