gpt4 book ai didi

python - Pandas :将日期和时间加入一个日期时间列

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:28 26 4
gpt4 key购买 nike

我有一个包含 13 列的数据框,其中两列是“日期”和“时间”。

我愿意1)加入“日期”和“时间”和2)正确格式化结果(DD.MM.YYYY HH:MM:SS)

        Date    Time
0 2012-09-27 00:40:20
1 2012-09-27 07:24:37
2 2012-09-27 07:25:08
3 2012-09-27 07:43:48
4 2012-09-27 07:44:27
5 2012-09-27 07:55:16
6 2012-09-27 08:04:19
7 2012-09-27 08:08:21
8 2012-09-27 08:09:08
9 2012-09-27 08:15:30
10 2012-09-27 08:15:35

所以我尝试:

>type(df["Date"])
pandas.core.series.Series

我想“为什么不将它们都转换为字符串表示形式并以这种方式操作它们呢?”

>g = df["Time"].astype(str)
>type(g)
pandas.core.series.Series

“什么?!它还是一个系列?!”

所以我尝试发挥创意:

>f = df["Date"].astype(str) + " " + df["Time"].astype(str)
>f
0 2012-09-27 00:40:20
1 2012-09-27 07:24:37
2 2012-09-27 07:25:08
3 2012-09-27 07:43:48

“嘿!这行得通!不,我们只需要正确的格式 (DD.MM.YYYY HH:MM:SS)”

>#dt.strptime(f, '%Y-%m-%d %H:%M:%S')
TypeError: strptime() argument 1 must be str, not Series

“仍然是一个系列......嗯......显然它不会让自己被转换。我们试试别的吧”

>f = p.concat([df["Date"], df["Time"]], axis=1)
>f
Date Time
0 2012-09-27 00:40:20
1 2012-09-27 07:24:37
2 2012-09-27 07:25:08

“很好!但是......这两个专栏不是仍然......吗?”

>f.shape
(100,2)

“对...回到原点...”

我没有想法....

有人吗?

最佳答案

我认为您需要使用 to_datetime 加入列:

print (type(df.loc[0, 'Date']))
<class 'str'>
print (type(df.loc[0, 'Time']))
<class 'str'>

df['datetime'] = pd.to_datetime(df['Date'] + " " + df['Time'])

如果有带string的日期时间:

print (type(df.loc[0, 'Date']))
<class 'pandas._libs.tslib.Timestamp'>
print (type(df.loc[0, 'Time']))
<class 'str'>

df['datetime'] = df['Date'] + pd.to_timedelta(df['Time'])

如果有带有时间的日期时间:

print (type(df.loc[0, 'Date']))
<class 'pandas._libs.tslib.Timestamp'>

print (type(df.loc[0, 'Time']))
<class 'datetime.time'>

df['datetime'] = df['Date'] + pd.to_timedelta(df['Time'].astype(str))

如果有带时间的日期:

print (type(df.loc[0, 'Date']))
<class 'datetime.date'>

print (type(df.loc[0, 'Time']))
<class 'datetime.time'>

df['datetime'] = pd.to_datetime(df["Date"].astype(str) + " " + df["Time"].astype(str))

print (df)
Date Time datetime
0 2012-09-27 00:40:20 2012-09-27 00:40:20
1 2012-09-27 07:24:37 2012-09-27 07:24:37
2 2012-09-27 07:25:08 2012-09-27 07:25:08
3 2012-09-27 07:43:48 2012-09-27 07:43:48
4 2012-09-27 07:44:27 2012-09-27 07:44:27
5 2012-09-27 07:55:16 2012-09-27 07:55:16
6 2012-09-27 08:04:19 2012-09-27 08:04:19
7 2012-09-27 08:08:21 2012-09-27 08:08:21
8 2012-09-27 08:09:08 2012-09-27 08:09:08
9 2012-09-27 08:15:30 2012-09-27 08:15:30
10 2012-09-27 08:15:35 2012-09-27 08:15:35

关于python - Pandas :将日期和时间加入一个日期时间列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47631556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com