解析熊猫中的特定日期和时间顺序

时间:2020-10-09 09:20:54

标签: python pandas

我在熊猫中有以下数据框:

enter image description here

其中:

日期列在195-730范围内,其中195 = '01 / 01/2009',196 = '01 / 02/2009',依此类推,(类型=对象不是字符串)

时间列每30分钟的范围为1-48,且1 = 00:00:00 – 00:29:59,(类型=对象而不是字符串)

我正在尝试将日期和时间列解析为这样的正确格式

约会时间

2009年1月1日00:30

.          .
.          .
.          .

2009年1月1日23:30

2009年2月1日00:30`

我对Date colunm使用了以下代码,但是结果不是我想要的,有什么建议吗?

`pd.to_datetime(df["Date"],dayfirst='01/01/09', format='%d',errors='ignore')`

1 个答案:

答案 0 :(得分:1)

我编写了一个函数,该函数将Date和time列中的值作为整数输入,并将它们转换为适当的python datetime。

from datetime import datetime

def convertToDatetime(date_int, time_int):
    timestamp = 1230768000 + (date_int - 195) * 86400 + time_int * 1800
    return datetime.fromtimestamp(timestamp)

print(convertToDatetime(195, 3))
2009-01-01 01:30:00

print(convertToDatetime(730, 7))
2010-06-20 03:30:00

您可以像这样使用它:

df['date_proper'] = df.apply(lambda row: str(convertToDatetime(int(row['Date']), int(row['time'])).date()), axis = 1)

df['time_proper'] = df.apply(lambda row: str(convertToDatetime(int(row['Date']), int(row['time'])).time()), axis = 1)