linux:python3.5.2如何下载pandas
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux:python3.5.2如何下载pandas相关的知识,希望对你有一定的参考价值。
参考技术A 1、首先Ubuntu用户Pandas通常需要与其他软件包一起使用。2、其次可采用以下命令,一次性安装所有包:sudoapt-getinstallnumpyscipymatplotlibpandas。
3、最后就可以安装了。
将一行中的字符串与所有其他行中的相同字符串进行比较,并记录差异,pandes 的性能问题
【中文标题】将一行中的字符串与所有其他行中的相同字符串进行比较,并记录差异,pandes 的性能问题【英文标题】:Compare the string in one row to the same string in all other rows and register the difference, performance issues with pandes 【发布时间】:2020-12-09 12:25:59 【问题描述】:我在 pandas 中有一个包含 700k 条记录的数据框。由于积压问题,我们需要将一行中的字符串与所有其他行中的相同字符串进行比较。此比较需要检查两个字符串中是否存在一个字符的差异。如果找到匹配项,则注册包含几乎相同值的行。
并返回以下输出:
[0] []
[1] [2,100]
[2] [1,100]
..
以下代码可以工作,但是对于 70 万条记录来说速度很慢。
def match(str1, str2):
# Return true if one character is different
difference = False
for char1, char2 in zip(str1, str2):
if char1 != char2:
if difference:
return False
difference = True
return difference
def func(text):
matches = DF.apply(lambda x: match(text, x['String']), axis = 1)
return [i for i, x in enumerate(matches) if x]
DFtwo = DF.apply(lambda row: func(row['String']), axis = 1)
是否有任何解决方案可以在 Pandas 中加快速度?大多数关于堆栈溢出的答案都集中在加快数值计算而不是字符串比较。任何在 python 中使用不同代码的解决方案也值得赞赏。
提前致谢。
【问题讨论】:
请提供带有预期输出的示例数据。输出将是数据帧/系列/序列吗?在此过程中,当涉及字符串操作时,列表推导非常快 【参考方案1】:尝试使用一个班轮:
count = sum(1 for a, b in zip(seq1, seq2) if a != b)
这将简单地返回两个字符串中的差异数,这一行用于随机数据的时间比您的方法稍差(1M 次尝试几秒钟)。但是,如果字符串的长度不同,您可以先比较字符串的长度diff = abs(len(seq1) - len(seq2))
,这可能会节省您一些时间。除此之外,似乎并没有太大的改进,试试你的代码,它运行得很快,而且你的代码的时间复杂度很低。
不过你可以看看difflib,get_close_matches
之类的函数可能会派上用场,但我不知道这个库的效率,对你也没有用处。
【讨论】:
以上是关于linux:python3.5.2如何下载pandas的主要内容,如果未能解决你的问题,请参考以下文章