dataframe去除重复记录 哪些Python库让你相见恨晚?

[更新]
·
·
分类:互联网
3041 阅读

dataframe去除重复记录

哪些Python库让你相见恨晚?

哪些Python库让你相见恨晚?

列举几个Python库吧,希望对你有所帮助。
1.日志库
安装方法:
pip install loguru
最简单的使用方法:
from loguru import logger
(Thats it, beautiful and simple logging!)
有兴趣也可以看看我之前制作的视频:
2.时间处理库
安装方法:
pip install -U arrow
最简单的使用方法:
import arrow
now_time ()
now_time.timestamp
1368303838
有兴趣也可以看看我之前制作的视频:
3.冷门的正则表达式库,不用懂正则也可以提取字符串。
安装方法:
pip install parse
最简单的使用:
from parse import *
parse(Its {}, I love it!, Its spam, I love it!)
Result (spam,) {}
_[0]
spam
有兴趣也可以看看我之前制作的视频:
如果你觉得这几个库都不好用,那我就不用介绍其他了。
如果感兴趣,可以关注@testerzhang,不定期发布一些相关技术文章和视频。

python3dataframe怎么去重复数据?

import pandas as pddata _csv(d:/ddd.txt)print(data.drop_duplicates())

dataframe对象结构特点?

DataFrame的特点如下:
1、同样DataFrame和python中字典结构相同,
2、DataFrame中关键字对应的是列名,关键字的值对应的是某列的值
3、DataFrame中,既有行索引又有列索引,行索引默认是(0, n-1) , 列索引对应的是列名

Python使用Pandas读取数据库很慢,应该如何提速?

谢邀!
Pandas编程库对数据科学界来说是一份天赐的礼物。无论你问哪一个数据科学家,他们是怎样使用Python处理他们的数据集,他们无疑都会谈到Pandas。
Pandas是一个伟大的编程库的缩影:简单、直观、功能广泛。
然而,对数据科学家的Pandas数据框进行数千甚至数百万次的计算,却仍然是一项挑战。你不能只是将数据放入编写Python for循环语句中,并期望在合理的时间内处理你的数据。
pandas是为一次性处理整个行或列的矢量化操作而设计的,循环在每个单元格、行或列中,但并不是设计使用库的方式。因此,在使用Pandas时,你应该考虑高度可并行化的矩阵运算法。
本指南将教你如何使用Pandas,它是被设计来使用和思考的矩阵运算。在此过程中,我将向你展示一些实用的且节省时间的技巧和窍门,这些技巧和窍门将使你的Pandas代码比那些可怕的Python for循环更快地运行!
我们的设置
在本教程中,我们将使用经典的Iris Flowers数据集。 让我们通过用seaborn加载的数据集并输入前5行来开始滚动。
现在让我们构建一个基线,用Python for循环来测量我们的速度。我们将通过循环每一行来设置要在数据集上执行的计算,然后测量整个操作的速度。这将为我们提供一个基线,看看我们的新优化能在多大程度上帮助我们摆脱困境。
在上面的代码中,我们创建了一个基本函数,它使用的是If-Else语句。我们编写了一个for循环,通过循环dataframe对每一行应用函数,然后测量循环的总运行时间。
在我的i7-8700k计算机上,循环运行5次平均需要0.01345秒。
循环语句.iterrows()
这是最简单但非常有价值的,可以加速使用Pandas内置的.iterrows()函数。
当我们在上一节中编写for循环时,我们使用了range()函数。 然而,当我们在Python中循环大量值时,生成器往往要快得多。在本文中,你可以阅读更多关于生成器是如何工作的信息,并还会使其运行得更快。
Pandas的.iterrows()函数在内部实现了一个生成器函数,它将在每次迭代时产生一行Dataframe。更确切地说,.iterrows()为DataFrame中的每一行产生(index, Series)元组。 这实际上与在原始Python中使用enumerate()之类的东西相同,但运行速度要快得多。
下面我们修改了代码,使用.iterrows()而不是常规的for循环。 在我上一节用于测试的完全相同的机器上,平均运行时间为0.005892秒 - 加速2.28倍!
使用.apply()完全删除循环
.iterrows()函数给我们带来了很大的提升速度,但是我们还远远没有完成。请始终记住,当使用专为矢量操作设计的库时,可能有一种方法可以在没有for循环的情况下最有效地完成任务。
为我们提供此功能的Pandas功能是.apply()函数。我们的()接受另一个函数作为其输入,并沿着DataFrame的轴(行、列等)应用它。 在我们传递函数的情况下,lambda通常可以方便地将所有内容打包在一起。
在下面的代码中,我们已经完全用.apply()和lambda函数替换了我们的for循环来打包我们想要的计算。在我的机器上,此代码的平均运行时间为0.0020897秒 ,比我们原来的for循环速度快了6.44倍。
apply()之所以这么快,是因为它在内部尝试了Cython迭代器。如果你的函数恰好针对Cython进行了优化,那么.apply()将为您带来更大的速度。还有额外的一点好处是,使用内置函数可以生成更干净、更易读的代码。
最后
前面我提到过,如果你正在使用一个为向量化操作设计的库,那么你应该始终寻找一种不使用for循环去进行计算的方法。
同样,有许多以这种方式设计的库,包括pandas,将具有方便的内置函数,可以执行你正在寻找的精确计算,并且速度更快。
来自Pandas的.cut()函数将一组bin定义为输入,这些bin定义了If-Else的每个范围和每一组标签,这些标签定义了每个范围返回的值。 然后它执行我们使用compute_class()函数,且手动编写的完全相同的操作。
查看下面的代码,了解.cut()的工作原理。 我们再次获得了更清晰、更易读的代码所带来的好处。 最后,.cut()函数平均运行0.001423秒 , 比原来的for循环快了9.39倍!
更多有关人工智能的资讯、深度报道、采访欢迎关注AI中国,无论你是小白还是大神,你想要的这里都有!