python与统计
我已经想不出昵称了
这个作者很懒,什么都没留下…
展开
-
Python 循环遍历字典和列表储存字典时遇到的深浅拷贝问题
之前也看过深浅拷贝的理论,但从没遇到过相关的问题。在for循环中将dict重新设立,再存入列表中,字典就不会只重复最后一遍。原理是浅拷贝的内存地址都是一样的。在浅拷贝情况下,不同引用指向的是同一块内存,改其中一个引用,那么其他引用也会跟着改变。而在循环中重新设立dict,就是在每次遍历时新开立一块内存,因此不会影响每次存储的结果。...原创 2021-08-04 14:13:56 · 285 阅读 · 0 评论 -
Python 匹配两组(或多组)数据
数据a是否在数据b里面,一开始写了个for循环去匹配,可数据量大,慢到爆炸。而且某个人也说,用for循环处理大数据,是要被人打的。python处理该问题,目前为止有两种方法。使用set集合的intersection交集a = [1,2,3,4]b = [4,5,6,7]set(a).intersection(set(b))使用pandas 的merge函数,可以取dataframe的交集。作用和sql的left join,right join差不多。pd.merge(a,b,on原创 2021-08-02 13:39:58 · 5538 阅读 · 0 评论 -
给pandas上发条!
给pandas上发条!在使用apply函数的时候,加上tqdm就可以查看进度了:from tqdm import tqdm import pandas as pdtqdm.pandas()# 使用progress_apply替代applydf.progress_apply(func, args)处理数据量比较大时,开个天眼更加安心一些。Ps这几天被人教育了,要用map,apply,applymap去跑数,用for循环非常耗电且要被打的。...原创 2021-07-23 10:25:09 · 90 阅读 · 0 评论 -
Pandas对数据进行排序标记(rank函数)
Pandas对数据进行排序标记(rank函数)现有一个问题:数据是多个重复两遍的user_id,想新建一列,给重复的user_id标号,1和2。具体功能如图:使用groupby和rank函数即可实现上述功能。具体代码如下:# 注: 这里是用user_id列对数据进行分组,然后对id列进行排序并且标号df['rank_id'] = df.groupby('user_id').id.rank(ascending=1,method='first')rank的参数为:ascending: 排序原创 2021-07-22 16:47:39 · 1172 阅读 · 0 评论