我有下面的代码和算法是相当缓慢的。

我尝试使用预分配与numpy(1.14.3),并将pandas(0.23.0)中的字符串列转换为category以加快代码的速度,但仍然非常慢。在

我的df是一个大的pd.DataFrame。len(df)返回1342058,有25列。在

df包含特定事件和位置的时间戳。数据的频率是可变的,从第二个数据到每小时的数据。我基本上想为每个客户机id和一个给定的日期箭头(rng)(每5分钟在start和end之间)重新取样。在df = pd.DataFrame()

df['client_id']=['40:a3:cc:XX:XX:XX','28:c6:3f:XX:XX:XX','40:a3:cc:XX:XX:XX','40:a3:cc:XX:XX:XX','28:c6:3f:XX:XX:XX','40:a3:cc:XX:XX:XX','40:a3:cc:XX:XX:XX','28:c6:3f:XX:XX:XX','28:c6:3f:XX:XX:XX','40:a3:cc:XX:XX:XX']

df['seen_time'] = ['2018-09-01 00:00:03+00:00', '2018-09-01 00:00:04+00:00','2018-09-01 00:00:05+00:00','2018-09-01 00:00:06+00:00','2018-09-01 00:00:08+00:00','2018-09-01 00:00:09+00:00','2018-09-01 00:00:09+00:00','2018-09-01 00:00:14+00:00','2018-09-01 00:00:19+00:00','2018-09-01 00:00:25+00:00']

df['location_x'] = [7.488775,20.163136,19.485196,12.841458,15.508627,5.708157,13.451071,19.1871,65,9.015443,28.266964]

这是我的代码:

^{pr2}$

prun的结果如下:158001796 function calls (155889787 primitive calls) in 483.930 seconds

Ordered by: internal time

ncalls tottime percall cumtime percall filename:lineno(function)

44934 209.957 0.005 209.957 0.005 {pandas._libs.algos.take_2d_axis1_object_object}

381942 44.206 0.000 44.379 0.000 {built-in method pandas._libs.algos.ensure_int64}

22468 20.656 0.001 95.913 0.004 categorical.py:2437(_recode_for_categories)

67402 20.583 0.000 20.583 0.000 {pandas._libs.algos.take_1d_int16_int16}

3 20.274 6.758 483.715 161.238 :23(processDataSingle)

44934 9.177 0.000 9.177 0.000 {pandas._libs.algos.take_2d_axis1_int64_int64}

44934 9.107 0.000 9.107 0.000 {pandas._libs.algos.take_2d_axis1_float64_float64}

36873382 7.775 0.000 15.205 0.000 {built-in method builtins.isinstance}

44934 7.592 0.000 7.592 0.000 {method 'nonzero' of 'numpy.ndarray' objects}

11899203 4.604 0.000 5.136 0.000 {built-in method builtins.getattr}

22471 4.368 0.000 4.450 0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects}

44934 3.644 0.000 3.644 0.000 {pandas._libs.algos.take_1d_int64_int64}

22467 3.479 0.000 3.776 0.000 categorical.py:64(f)

643042 3.380 0.000 3.380 0.000 {method 'reduce' of 'numpy.ufunc' objects}

148422 3.016 0.000 3.016 0.000 {method 'copy' of 'numpy.ndarray' objects}

2557465/2534997 2.740 0.000 4.622 0.000 common.py:1835(_get_dtype_type)

337007/292073 2.727 0.000 318.981 0.001 algorithms.py:1545(take_nd)

7351676 2.672 0.000 5.713 0.000 generic.py:7(_check)

404409/359475 2.359 0.000 20.467 0.000 series.py:165(__init__)

8155845/6470735 2.152 0.000 2.873 0.000 {built-in method builtins.len}

471840 2.111 0.000 2.111 0.000 {built-in method numpy.core.multiarray.empty}

89874 2.109 0.000 4.487 0.000 internals.py:3363(_rebuild_blknos_and_blklocs)

2610562 2.028 0.000 5.330 0.000 base.py:61(is_dtype)

1046990/1002055 1.888 0.000 2.184 0.000 {built-in method numpy.core.multiarray.array}

44935 1.830 0.000 1.830 0.000 {method 'take' of 'numpy.ndarray' objects}

4713590 1.757 0.000 1.773 0.000 {built-in method builtins.hasattr}

134826/89883 1.750 0.000 7.191 0.000 base.py:250(__new__)

247139 1.647 0.000 6.430 0.000 cast.py:257(maybe_promote)

1087307 1.523 0.000 5.693 0.000 common.py:1688(is_extension_array_dtype)

134802/89868 1.475 0.000 18.290 0.000 datetimes.py:329(__new__)

2233231 1.437 0.000 2.797 0.000 :997(_handle_fromlist)

718950 1.411 0.000 2.764 0.000 generic.py:4374(__setattr__)

763890/629088 1.361 0.000 2.083 0.000 {method 'format' of 'str' objects}

224670 1.314 0.000 254.948 0.001 internals.py:1237(take_nd)

629082 1.249 0.000 2.836 0.000 internals.py:116(__init__)

314539 1.145 0.000 303.889 0.001 frame.py:2661(__getitem__)

...

67401 0.634 0.000 134.602 0.002 ops.py:1175(wrapper)

44934 0.625 0.000 277.776 0.006 internals.py:4518(take)

...

67404 0.558 0.000 101.225 0.002 categorical.py:267(__init__)

...

89868 0.527 0.000 11.864 0.000 datetimelike.py:523(take)

44934 0.522 0.000 285.513 0.006 generic.py:2780(_take)

1392955 0.517 0.000 0.599 0.000 internals.py:352(dtype)

44934/22467 0.514 0.000 12.605 0.001 {built-in method _operator.ge}

...

44937 0.425 0.000 264.034 0.006 internals.py:4423()

...

763912 0.296 0.000 1.993 0.000 numeric.py:424(asarray)

44934 0.295 0.000 22.606 0.001 datetimes.py:109(wrapper)

381946 0.289 0.000 2.251 0.000 {method 'any' of 'numpy.ndarray' objects}

89892 0.286 0.000 0.960 0.000 common.py:298(_asarray_tuplesafe)

67404 0.281 0.000 1.299 0.000 cast.py:971(maybe_cast_to_datetime)

89868 0.280 0.000 2.962 0.000 internals.py:4108(get)

629082 0.276 0.000 0.276 0.000 internals.py:127(_check_ndim)

44934 0.276 0.000 295.073 0.007 frame.py:2704(_getitem_array)

107568 0.267 0.000 2.324 0.000 missing.py:494(na_value_for_dtype)

179742 0.264 0.000 0.827 0.000 dtypes.py:459(construct_from_string)

44937 0.260 0.000 270.290 0.006 internals.py:4388(reindex_indexer)

...

67401 0.220 0.000 128.302 0.002 ops.py:1073(dispatch_to_index_op)

...

1 0.194 0.194 483.930 483.930 :1()

...

44934 0.179 0.000 20.583 0.000 base.py:89(cmp_method)

...

44934 0.110 0.000 10.841 0.000 datetimes.py:39(_maybe_cache)

...

1 0.003 0.003 483.719 483.719 :61(processDataArrayWrapper)

...

1 0.000 0.000 483.930 483.930 {built-in method builtins.exec}

注意:我删除了一些cumtime很小的行。我相信大部分时间都花在take_2d_axis1_object_object上,但是我在理解这个问题上有困难。代码的哪一部分导致了这个问题?在

我在我的macbookpro上用intelcorei7 2,7ghz和4核运行代码,python进程占用了将近400%的CPU,这意味着它在后台使用了多核。在

用python画熊猫代码_带有大熊猫数据帧的python代码是s相关推荐

  1. python画大学教室_开学季,用Python画大学教室座位神分区图,你中枪了吗?

    这就用Python给大家画这幅有趣的神分区图,看看是不是跟你的情况一样呢? 基本思路:我们将画布分成若干子画布,这些子画布构成绘图区域,在这些绘图区域上分别绘制图形,这就让我们想到函数subplot2 ...

  2. 怎么用python画小狗_程序员教你用代码手绘一只可爱的小狗,正好拿去送给女朋友给她个惊喜...

    最近经常在抖音上刷到会画画的大神给小姐姐手绘各种可爱的小动物,非常的哇塞哦~ 作为程序员的我那是羡慕不已啊!我要是学会这招是不是可以尝试给我心仪很久的女神告白了?女神没准会很开心!(好吧,我承认我是舔 ...

  3. python画玫瑰图_三步学会用python画一个简单的玫瑰图

    玫瑰图实际是一种2维极坐标统计图,常用于表示气象.气候现象,如测站的风向频率等.用excel也可以画,但相对麻烦一些,所以当我们需要用到玫瑰图时,我们可以尝试用python来画.首先导入需要用到的包 ...

  4. python画指数函数图像_「指数函数图像」python画出e指数函数的图像 - seo实验室...

    指数函数图像 这里用Python逼近函数y = exp(x);同样使用泰勒函数去逼近: exp(x) = 1 + x + (x)^2/(2!) + .. + (x)^n/(n!) + ...#!/us ...

  5. python画图加注释_【IT专家】python画图笔记——注释

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 画图笔记 -- 注释 2017/02/23 0 一 . 注释简介注释位于 matplotlib.pyplot 下,需要需要实例化后再 ...

  6. python画资本市场线_【投资组合理论】Python绘制上证50成分股有效前沿和CML

    马科维茨有效前沿是经典的资产配置模型,对于给定收益率,有效前沿上的投资组合风险最小. 初学时,感觉绘制有效前沿是个极其有难度的事情,基本不可能完成.后来学了Python的一些数值计算方法,才感觉用程序 ...

  7. 用python画熊猫_当熊猫不够用熊猫

    用python画熊猫 Python短裤 (Python Shorts) Pandas is one of the best data manipulation libraries in recent ...

  8. 用python画动态樱花_利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白...

    利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白 此处感谢知乎大佬 小白练手 练习一下比较流行的turtle(海龟库) 画一棵漂亮的樱花树,效果如下: ps: 是动态 ...

  9. 用python画熊猫_熊猫read_excel()–用Python读取Excel文件

    用python画熊猫 We can use the pandas module read_excel() function to read the excel file data into a Dat ...

最新文章

  1. linux驱动:音频驱动(二)ASoc
  2. R语言操作excel文件的数据
  3. 腾讯“死守”版权,网易云“再强”社区,各筑“孤峰”对战在线音乐下半场
  4. 关于答题抢票活动中奖率低的说明 |程序员光荣日
  5. 最长子段和 11061008 谢子鸣
  6. 服务器端密钥库文件,使用密钥库文件为SOAP运行客户端WS
  7. MySQL命令行导出数据库
  8. java怎样下载maven资源库_下载Maven资源库文件
  9. 汽车常识全面介绍 - 悬挂系统
  10. java 内部类_我有心上人了,Java内部类
  11. matlab2018历史命令在哪,2018美赛准备之路——Matlab基础——命令行功能函数
  12. DB2的下载、图解安装、可能出现的问题(一篇解决)
  13. 项目管理——项目汇报总结
  14. 网络流量监测IP雷达 4.0
  15. arduino 有源 蜂鸣器_Arduino控制蜂鸣器发声
  16. CRT和LCD显示器的区别
  17. matlab怎么画函数线,请问matlab怎么画常数函数,比如同时画x=300和x=400这两条线...
  18. 怎么申请学校邮箱?学校邮箱格式有哪些?
  19. 华为发布最强服务器芯片,华为:最强ARM服务器芯片,华为鲲鹏920处理器发布
  20. 云计算学习1——OpenStack云计算安装部署步骤图文并茂(先电2.2)

热门文章

  1. vue引入第三方html,vue.js如何引入第三方模块?
  2. vue引入第三方js文件
  3. livorth的个人简历
  4. 五面腾讯技术专家岗,已拿offer,这些面试题你能答出多少? 还不来学习啊!
  5. python asyncio future_Python asyncio.ensure_future方法代碼示例
  6. arm64的ioremap_4412 GPIO读 和 ioremap控制GPIO寄存器
  7. Spring运用到的几种设计模式
  8. MySQL建立索引的SQL语句
  9. 【随机过程】泊松过程的协方差
  10. 【HTML5学习小结(2)】