使用pandas玩kaggle数据(二)

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

时间序列

基于这个思路,创建以时间为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()

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

时走势图
clipboard.png

日走势图
clipboard.png

月走势图
clipboard.png

年走势图
clipboard.png

和其它列结合分析

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

# -*- 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()

按警区按年的案件走势
clipboard.png

按星期几按年的案件走势
clipboard.png

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

按类型按年的案件走势
clipboard.png

Kaggle 是一个数据科学竞赛平台,提供了大量的数据集和机器学习问题供用户解决。PandasPython 中一个非常强大的数据处理库,可以帮助我们高效地处理和分析数据。 根据题目要求,我们需要使用 Pandas 创建一个数据集,并填充数据。首先,我们可以导入 Pandas 库并创建一个空的数据集: ```python import pandas as pd data = pd.DataFrame() ``` 接下来,我们可以根据题目需求添加列和数据。例如,如果题目要求我们创建一个包含姓名和年龄的表格,我们可以这样做: ```python data['姓名'] = ['张三', '李四', '王五'] data['年龄'] = [25, 30, 35] ``` 这样就创建了一个包含两列(姓名和年龄)的数据集,并填入了对应的数据。 如果题目还要求我们创建其他列,比如性别、职业等,我们可以类似地继续添加数据: ```python data['性别'] = ['男', '女', '男'] data['职业'] = ['工程师', '教师', '医生'] ``` 这样我们就完成了数据集的创建和填充。 最后,我们可以打印数据集并进行验证,确保我们创建的数据集符合要求: ```python print(data) ``` 输出的结果应该是这样的: ``` 姓名 年龄 性别 职业 0 张三 25 男 工程师 1 李四 30 女 教师 2 王五 35 男 医生 ``` 通过上述步骤,我们成功创建了一个包含姓名、年龄、性别和职业的数据集。这就是使用 PandasKaggle 上进行数据处理的简单示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值