IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 数据科学库--第六天 -> 正文阅读

[人工智能]数据科学库--第六天

→@TOC

应用

统计911报警电话原因的分类
第一种方式:构建全为0的Dataframe

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

file_path = "./911.csv"
df = pd.read_csv(file_path)
#获取分类

temp_list = df["title"].str.split(":").tolist()
cate_list = list(set([i[0] for i in temp_list]))
print(cate_list)


#g构造全为0的数据

zeros_df = pd.DataFrame(np.zeros((df.shape[0],len(cate_list))),columns=cate_list)

#给全0数组赋值,对zeros_df的三列进行遍历处理,相较于对整个temp_list的25万行进行遍历要快的多
for cate in cate_list:
    zeros_df[cate][df["title"].str.contains(cate)] = 1



#统计
sum_res = zeros_df.sum(axis=0)
print(sum_res)

输出:

['Traffic', 'Fire', 'EMS']
Traffic     87465.0
Fire        37432.0
EMS        124844.0
dtype: float64

第二种方式:通过构建新的一列

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

file_path = "./911.csv"
df = pd.read_csv(file_path)
# 首先将文件中的相关数据进行提取,然后形成一个新的列表cate_list
temp_list = df['title'].str.split(":").tolist()
cate_list = [i[0] for i in temp_list]
# 通过将cate_list作为新的一列添加进文件中
df['cate'] = pd.DataFrame(np.array(cate_list).reshape((df.shape[0], 1)))

# 再通过groupby方法将cate列分类,然后统计每组的个数
print(df.groupby(by='cate').count()['title'])

输出:

cate
EMS        124840
Fire        37432
Traffic     87465
Name: title, dtype: int64

pandas 中的时间序列

设置时间序列:
[时间点的设置]
pd.data_range(start=None,end=None,periods=None,freq=‘D’)
[时间段的设置]
PeriodIndex() :将分开的时间字符串通过此方法转化为pandas的时间类型

Parameters
    ----------
    start : str or datetime-like, optional
        Left bound for generating dates.
    end : str or datetime-like, optional
        Right bound for generating dates.
    periods : int, optional
        Number of periods to generate.
    freq : str or DateOffset, default 'D'
        Frequency strings can have multiples, e.g. '5H'. See
        :ref:`here <timeseries.offset_aliases>` for a list of
        frequency aliases.

关于freq的参数的更多表示方法:
D→每日
B→每工作日
H→每小时
S→每秒
L/ms→每毫秒
U→每微秒
M→每月最后一个日历日
BM→每月最后一个工作日
MS→每月第一个日历日
BMS→每月第一个工作日

pandas重采样:
指的是将时间序列从一个频率转化为另一个频率进行处理的过程,将高频率数据转化为低频率数据为降采样,低频率转化为高频率为升采样,resample()

应用:911数据中不同月份不同类型的电话的次数的变化情况

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

# 911数据中不同月份不同类型的电话的次数的变化情况


# 把时间字符串转为时间类型并设置为索引

file_path = "./911.csv"
df = pd.read_csv(file_path)
df['timeStamp'] = pd.to_datetime(df['timeStamp'])

# 添加列,表示分类
temp_list = df['title'].str.split(':').tolist()
cate_list = [i[0] for i in temp_list]
df['cate'] = pd.DataFrame(np.array(cate_list).reshape((df.shape[0], 1)))
df.set_index('timeStamp', inplace=True)
print(df.head(5))
plt.figure(figsize=(16, 9), dpi=144)

for group_name, group_data in df.groupby(by='cate'):
    # 对不同的分类进行绘图
    count_by_month = group_data.resample('M').count()['title']
    _x = count_by_month.index
    _y = count_by_month.values
    _x = [i.strftime('%Y%m%d') for i in _x]
    plt.plot(range(len(_x)), _y, label=group_name)

plt.xticks(range(len(_x)), _x, rotation=45)
plt.legend(loc='best')
plt.show()

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:14:10  更:2021-10-06 12:16:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:23:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码