繁体   English   中英

(Python)如何将具有日期和时间的列(例如UTC 2019-07-02 00:12:32)拆分为两个单独的列?

[英](Python) How can I split a column with both date and time (e.g. 2019-07-02 00:12:32 UTC) into two separate columns?

我有一个包含8列和40,000行的表,下表(DF700)是整个表的一小部分。 我需要拆分“ sdk_ts”列,以便将日期和时间分开,并从所有行中删除“ UTC”。

            sdk_ts                             y       z 

0   2019-07-02 00:12:32 UTC                  3.455   4.555
1   2019-07-02 00:12:32 UTC                  4.567   6.897
2   2019-07-02 00:12:32 UTC                  9.304   0.440    : : : 
3   2019-07-02 00:12:59.6 UTC                8.909   0.405
4   2019-07-02 00:12:34.789 UTC              10.30   2.344
                                 :
                                 :

我尝试了以下代码:

DF800 = DF700['sdk_ts'].str.split(n=1, expand=True)

但是,结果是:

         0          1
0   2019-07-02  00:12:32 UTC
1   2019-07-02  00:12:32 UTC
2   2019-07-02  00:12:32 UTC
3   2019-07-02  00:12:59.6 UTC
4   2019-07-02  00:12:34.789 UTC
5   2019-07-02  00:12:35.048 UTC

有没有其他方法可以实现我的目标? 拆分日期和时间,在所有行中删除“ UTC”,并确保其他列仍在表中。

我建议将“ sdk_ts”列转换为日期时间格式,以便您可以轻松地从中提取日期和时间。

这是代码:

df['sdk_ts'] = pd.to_datetime(df['sdk_ts'])
df['date'] = df['sdk_ts'].dt.date
df['time'] = df['sdk_ts'].dt.time

只需在分割之前使用strip(' UTC')摆脱它,就像这样:

DF800 = DF700['sdk_ts'].str.strip(' UTC').str.split(n=1, expand=True)

完整示例:

import pandas as pd
from io import StringIO

DF700 = pd.read_csv(StringIO("""
            sdk_ts                             y       z 

0   2019-07-02 00:12:32 UTC                  3.455   4.555
1   2019-07-02 00:12:32 UTC                  4.567   6.897
2   2019-07-02 00:12:32 UTC                  9.304   0.440 
3   2019-07-02 00:12:59.6 UTC                8.909   0.405
4   2019-07-02 00:12:34.789 UTC              10.30   2.344"""), sep="\s\s+")

DF800 = DF700['sdk_ts'].str.strip(' UTC').str.split(n=1, expand=True)
print(DF800)

输出:

            0             1
0  2019-07-02      00:12:32
1  2019-07-02      00:12:32
2  2019-07-02      00:12:32
3  2019-07-02    00:12:59.6
4  2019-07-02  00:12:34.789

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM