美文网首页我爱编程结构化 · 科技
Kaggle Data Challenge 第三天

Kaggle Data Challenge 第三天

作者: 一森一森 | 来源:发表于2018-04-11 23:55 被阅读0次
Kaggle_logo.png

Abstract:18年复活节前的五天,kaggle举办了数据预处理的五个挑战。这里做每天学习到的技术要点的回顾。这篇是第三天的内容,主要是有关日期数据的解析。


日期数据会有好多形式,DDMMYYYY(UK),MMDDYY(US),YYYYMMDD(CN)。Python没法自动识别这些字符是日期,所以统统存为Object的格式。要想使用pandas做日期数据的识别和调用,必须先把这些日期的数据转换成「datetime64」的格式。

设置环境

# modules we'll use
import pandas as pd
import numpy as np
import seaborn as sns
import datetime

# read in our data
earthquakes = pd.read_csv("../input/earthquake-database/database.csv")
landslides = pd.read_csv("../input/landslide-events/catalog.csv")

转化日期为datetime

识别一串字符是日期,并把这串字符转化成2000-01-30,同中国格式。
转化后的数据才能进行pandas.Series.dt.day等操作。

首先需要告诉python这些数据里的时间字符是什么format,举个例子:

  • 1/17/07 has the format "%m/%d/%y"
  • 17-1-2007 has the format "%d-%m-%Y"
    (大写Y表示四位年份,小写y表示两位)

知道了格式后,日期数据Series操作:

# create a new column, date_parsed, with the parsed dates
landslides['date_parsed'] = pd.to_datetime(landslides['date'], format = "%m/%d/%y")

如果原始数据里的时间格式都不统一,可以用一下的命令让python自己猜,但是速度慢,准确率也不保证:

earthquakes.Date_parsed = pd.to_datetime(earthquakes.Date, infer_datetime_format = True)
earthquakes.Date_parsed.head()

对datetime类型数据的操作

数据转化为datetime64以后就可以提取日期了。

# get the day of the month from the date_parsed column
day_of_month_landslides = landslides['date_parsed'].dt.day

把事故发生在一个月份中的日期提取出来,然后看看各个日期和事故发生的关系:

# remove na's
day_of_month_landslides = day_of_month_landslides.dropna()

# plot the day of the month
sns.distplot(day_of_month_landslides, kde=False, bins=31)
image.png

如果这篇文章对你有所帮助,还请帮忙点赞打赏评论分享~谢谢🙏


相关文章

网友评论

    本文标题:Kaggle Data Challenge 第三天

    本文链接:https://www.haomeiwen.com/subject/ywkjhftx.html