我有一列称为Date的列,该列的对象类型具有日期和时间,格式为“ 2019/10 / 07,12:44:58”。 我尝试从“日期”列中切出日期部分,然后将其转换为正确的日期格式。我想在date列上应用此功能,以创建一个名为date1的新列,而无需使用for循环。
答案 0 :(得分:0)
如我们所见,前两行具有不同的日期格式。因此,我们首先使用errors='coerce'
将其余部分转换为日期时间。然后,我们转换前两行并使用fillna
将两个日期汇总在一起:
date1 = pd.to_datetime(data['Date'], format='%Y/%m/%d,%H:%M:%S', errors='coerce')
date2 = pd.to_datetime(data.loc[date1.isna(), 'Date'], format='%d-%m-%Y,%H:%M:%S')
data['Date'] = date1.fillna(date2)
Date Open High Low Close Qty Value(Lk) \
0 2019-10-07 12:45:17 1208.65 1208.85 1208.40 1208.85 1125 13.60
1 2019-10-07 12:45:00 1208.70 1209.10 1208.40 1209.10 9344 112.95
2 2019-10-07 12:43:58 1208.80 1209.40 1208.35 1208.65 7342 88.75
3 2019-10-07 12:42:58 1208.70 1209.20 1208.40 1209.00 9355 113.08
4 2019-10-07 12:41:57 1208.75 1209.00 1207.80 1208.35 5890 71.17
Trades BS
0 4
1 15
2 13
3 15
4 13
原始数据:
Date Open High Low Close Qty Value(Lk) \
0 07-10-2019,12:45:17 1208.65 1208.85 1208.40 1208.85 1125 13.60
1 07-10-2019,12:45:00 1208.70 1209.10 1208.40 1209.10 9344 112.95
2 2019/10/07,12:43:58 1208.80 1209.40 1208.35 1208.65 7342 88.75
3 2019/10/07,12:42:58 1208.70 1209.20 1208.40 1209.00 9355 113.08
4 2019/10/07,12:41:57 1208.75 1209.00 1207.80 1208.35 5890 71.17
Trades BS
0 4
1 15
2 13
3 15
4 13