pandas 日期时间格式混合并分离为两列并更改日期格式

tnkciper  于 2023-03-21  发布在  其他
关注(0)|答案(2)|浏览(224)

我有一个数据,在一个单独的列中包含日期和时间。格式是日期和时间的混合。这意味着,在同一列中的某些行中的日期和某些行中的时间。我创建了一个简单的例子来说明我的问题。下面是示例数据框:

data = pd.DataFrame ()
data ['Date'] = ['Saturday 20th April 2019','12:30:00','12:30:00','15:00:00']
data ['Name'] = ['A','B','C','D']

我想做两件事。
1.我想把日期和时间分成两列。
1.我想将日期的格式更改为20-04-2019。
预期产出如下:

Date 1和Time是我想要创建的新列。
我该怎么做呢?

dxxyhpgq

dxxyhpgq1#

单程

data['Date1']=pd.to_datetime(data.Date)
data['Time']=data['Date1'].dt.time
s=data.Date.str.contains(':')
data['Date1']=data['Date1'].mask(s).ffill()
data['Time']=data['Time'].where(s).bfill()
data
Out[1002]: 
                       Date Name      Date1      Time
0  Saturday 20th April 2019    A 2019-04-20  12:30:00
1                  12:30:00    B 2019-04-20  12:30:00
2                  12:30:00    C 2019-04-20  12:30:00
3                  15:00:00    D 2019-04-20  15:00:00
mmvthczy

mmvthczy2#

用途:

data['Date1'] = data['Date'].str.split(n=1).str[1].ffill()
data['Time1'] = data['Date'].str.extract('(\d+:\d+:\d+)', expand=False).bfill()

print (data)

                       Date Name            Date1     Time1
0  Saturday 20th April 2019    A  20th April 2019  12:30:00
1                  12:30:00    B  20th April 2019  12:30:00
2                  12:30:00    C  20th April 2019  12:30:00
3                  15:00:00    D  20th April 2019  15:00:00

相关问题