我在熊猫中有以下数据框:
其中:
日期列在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')`
答案 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)