2200-Tom-算法方向-数据挖掘方向-就业:否 已关闭

2200-Tom-算法方向-数据挖掘方向-就业:否 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

pandas时间序列

现在我们有2015201725万条911的紧急电话的数据,请统计出出这些数据中不同类型的紧急情况的次数,如果我们还想统计出不同月份不同类型紧急电话的次数的变化情况,应该怎么做呢?

 

为什么要学习pandas的时间序列

不管在什么行业,时间序列都是一种非常重要的数据形式,很多统计数据以及数据的规律也都和时间序列有着非常重要的联系

 

时间格式化

python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

[展开全文]

pandas数据重采样

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

 

[展开全文]

关于索引和复合索引

 

[展开全文]

merge——进行列合并,合并的是相同索引值得列默认的方式是inner,取交集,当没有相同的数的时候取空

[展开全文]

传递不可变对象如果发生赋值操作用的是浅拷贝

[展开全文]

内置函数:copy(浅拷贝)、deepcopy(深拷贝)。

浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用。

深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象

[展开全文]

#打印99乘法表

for m in range(1,10):

    for n in range(1,10):

        if m>=n :

          print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")

    print() #表示换行

 

#列表输出的练习

r1= dict(name="高小一",age=18,salary=30000,city="北京") 

r2= dict(name="高小二",age=19,salary=20000,city="上海") 

r3= dict(name="高小三",age=20,salary=10000,city="深圳") 

tb = [r1,r2,r3]

#打印工资大yu15000的人

for x in tb:

    if x.get("salary")>15000:

        print(x.get("name"))

[展开全文]

复习:

字符串“”

列表[]

元组()

字典{}

 

 

for比while省去了

[展开全文]

字典元素增删改

区分pop和popitem

返回删除值和返回删除键值对

[展开全文]

字典元素访问

1、【键】检索

2、get(),键不存在返回None,推荐

3. 列出所有的键值对

>>> a.items()

dict_items([('name', 'gaoqi'), ('age', 18), ('job', 'programmer')])

4. 列出所有的键,列出所有的值

>>> a.keys()

dict_keys(['name', 'age', 'job'])


>>> a.values()
dict_values(['gaoqi', 18, 'programmer'])

5. len() 键值对的个数
6. 检测一个“键”是否在字典中 in

[展开全文]

字典

键值对,无序,类似数据库那种感觉

字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,但是:列表、 字典、集合这些可变对象,不能作为“键”。并且“键”不可重复。“值”可以是任意的数据,并且可重复。

 

创建方法

1、{} 或 dict()

2、zip()

>>> k = ['name','age','job']  #键
>>> v = ['gaoqi',18,'techer']  #值
>>> d = dict(zip(k,v))  #打包
>>> d
{'name': 'gaoqi', 'age': 18, 'job': 'techer'}

3、fromkey创建值为空(None)的字典

>>> a = dict.fromkeys(['name','age','job']) >>> a
{'name': None, 'age': None, 'job': None}

[展开全文]

生成器推导式创建元组

>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x0000000002BDEB48> #s还是个指针
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s) #只能访问一次元素。第二次就为空了。需要再生成一次 []
>>> s
<generator object <genexpr> at 0x0000000002BDEB48>
>>> tuple(s)
()
>>> s = (x*2 for x in range(5))
>>> s.__next__()  #逐步移动指针的方法
0
>>> s.__next__()
2
>>> s.__next__()
4

元组总结:

不可变

访问处理速度快

与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

[展开全文]

元组的元素访问和计数

切片

排序:只能使用内置函数 sorted(tupleObj),并生成新的列表对象。

>>> a = (20,10,30,9,8)

>>> sorted(a)
[8, 9, 10, 20, 30]

zip(打包)

zip(列表 1,列表 2,...)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。 >>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]

>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]

[展开全文]

元组 tuple

不可变序列,没有增删改操作

关键在于访问、计数

创建元组

1、()

a = (10,20,30) or a = 10,20,30

b = 10,

2 、tuple()

b = tuple() #创建一个空元组对象

b = tuple("abc")

b = tuple(range(3)) b = tuple([2,3,4])

【区分】

tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组

list()可以接收元组、字符串、其他序列类型、迭代器等生成列表

[展开全文]

二维列表

前套循环打印2维列表

for m in range(3):

     for n in range(4):

          print(a[m][n],end="\t")

      print() #打印完一行换行

[展开全文]

列表的逆序

1、可以用切片[ : : -1]

2、reversed()返回迭代器,时间换空间

>>> a = [20,10,30,40]
>>> c = reversed(a)

>>> c  

<list_reverseiterator object at 0x0000000002BCCEB8>

#说明c是个迭代器

>>> list(c)
[40, 30, 10, 20]

#把c转换成列表输出倒序

>>> list(c)
[]

#迭代器只能用一次,迭代器里包含一个指针(如:0x0000000002BCCEB8),从列表尾部向前指,用第一次的时候就已经指到最前了

[展开全文]

切片slice操作

[起始偏移量 start:终止偏移量 end[:步长 step]]

⚠️ end-1(索引)

⚠️如果只有如:[1:3]、[-5:-3],则包头不包尾

⚠️使用负数,反着数

列表的遍历

for obj in listObj:

print(obj)

[展开全文]

列表元素访问和计数

1、索引访问

索引区间[0,列表长度-1],超范围会报异常

2、index() 元素在列表中(首次)出现的索引

index(value,[start,[end]])

>>> a = [10,20,30,40,50,20,30,20,30]
>>> a.index(20)

1
>>> a.index(20,3) #从索引位置 3 开始往后搜索的第一个 20

5
>>> a.index(30,5,7)

6

3、count() 计数

4、len() 长度=元素个数

5、成员资格判断

in

count() 返回0就不在

[展开全文]

列表元素的删除

1、del() 本质是数组拷贝

被删元素后面的依次向前拷贝

2、pop() 方法

删除并返回指定位置元素

3、remove() 方法

删除首次出现的指定元素,若不存在报异常

[展开全文]

列表的增加与删除

1、append() 尾部加,推荐

2、+运算,拼接,会产生新列表对象,id变

3、extend() 原地扩展,id不变

4、insert() 插入元素之一,涉及数组移动

5、乘法扩展

[展开全文]