使用pandas玩kaggle数据(二)
admin
2023-07-31 01:43:50
0

还是有点懒,本应早点写第二集。按类型去分析数据并没有得到规律性的东西。我们再来看看元数据。
Dates是案件发生的时间,案件是否具有时间规律,随着时间在增长或者减少呢?

时间序列

基于这个思路,创建以时间为index的DataFrame,其中index选用数据中的\’Dates\’列作为index,为方便按时间操作,将\’Dates\’列转换为DatetimeIndex类型。
按年月日格式化时间key,按key进行分类,我们得到每日发生的案件统计走势图。

# -*- coding: utf-8 -*-
__author__ = \'longtaiye\'


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

#读取数据
df = pd.read_csv(\'/Users/longtaiye/Documents/ml-learn/train.csv\')

#设置pandas打印格式
pd.set_option(\'display.width\', 300)

#以日期为index创建新的DataFrame
dateDF = pd.DataFrame(np.asarray(df), index=pd.to_datetime(df[\'Dates\']), columns=df.columns)

#按年月日统计案件发生规律
key1 = lambda x:x.strftime(\"%Y-%m-%d\")
dateDF[\'Category\'].groupby(key1).count().plot(figsize=(26, 10))

plt.show()

依照相同的方法可以得到时走势、日走势、月走势、年走势图,从图上看并没有什么规律性。

时走势图

日走势图

月走势图

年走势图

和其它列结合分析

上面的分析表明,单纯的时间趋势并不存在,那么在限定其它因素情况下的时间走势关系是否存在呢?
我们先从警区入手。按警区划分案件,然后统计每个警区的案件走势。

# -*- coding: utf-8 -*-
__author__ = \'longtaiye\'


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


df = pd.read_csv(\'/Users/longtaiye/Documents/ml-learn/train.csv\')
pd.set_option(\'display.width\', 300)

dateDF = pd.DataFrame(np.asarray(df), index=pd.to_datetime(df[\'Dates\']), columns=df.columns)

#按警区划分
groups = dateDF.groupby(\'PdDistrict\')

ii = 1
key = lambda x:x.strftime(\"%Y\")
plt.figure(figsize=(20, 12))
for name, group in groups:
    subplot = plt.subplot(4, 4, ii)
    subplot.plot(group.groupby(key).count())
    plt.title(name)

    ii+=1

plt.show()

按警区按年的案件走势

按星期几按年的案件走势

这两张图也并没有太多的规律,但下面这张图让我们看到了一丝希望。如BAD CHECK类型但案件时逐年降低的。

按类型按年的案件走势

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...