每次处理数据,日期时间项的整合和分离就要耗费好多时间和精力,真让人头疼,比如最近两天。
第一种情况:可以看到年、月、日分别占了一列。

解决办法:首先将excel文件的列名转换为英文版,方便函数识别
df["date"]= pd.to_datetime(df[["year", "month", "day"]])
df.set_index(df["date"],inplace=True)
第二种情况:如图所示

解决方法:首先把时间项转为时间格式的字符串,然后把int型的日期项转为str,再两列连接,最后用pd.to_datetime指定格式将字符串转为正常的日期时间项显示。
jz_2019["hour2"] = jz_2019["hour"].apply(lambda x:time(x).strftime("%H:%M"))
jz_2019["TEST"] = jz_2019["date"].apply(lambda x:str(x))+" "+jz_2019["hour2"]
jz_2019["datetime"] = pd.to_datetime(jz_2019["TEST"],format='%Y%m%d %H:%M')
jz_2019.drop(["date","hour2","TEST"],axis=1,inplace=True)
jz_2019.set_index(jz_2019["datetime"],inplace=True)
同理,第一种情况也适用于第二种方法,不再赘述。
网友评论