当前位置: 首页 > 面试题库 >

在Pandas数据框列中找到最长字符串的长度

吴嘉禧
2023-03-14
问题内容

有没有比下面的示例更快的方法来找到Pandas DataFrame中最长字符串的长度?

import numpy as np
import pandas as pd

x = ['ab', 'bcd', 'dfe', 'efghik']
x = np.repeat(x, 1e7)
df = pd.DataFrame(x, columns=['col1'])

print df.col1.map(lambda x: len(x)).max()
# result --> 6

df.col1.map(lambda x: len(x)).max()使用IPython的进行计时大约需要10秒钟%timeit


问题答案:

DSM的建议似乎是您无需进行一些手动微优化就能获得的最佳效果:

%timeit -n 100 df.col1.str.len().max()
100 loops, best of 3: 11.7 ms per loop

%timeit -n 100 df.col1.map(lambda x: len(x)).max()
100 loops, best of 3: 16.4 ms per loop

%timeit -n 100 df.col1.map(len).max()
100 loops, best of 3: 10.1 ms per loop

请注意,显式使用该str.len()方法似乎并没有多大改进。如果您不熟悉IPython(这是非常方便的%timeit语法所来自的地方),我绝对建议您尝试一下,以快速测试此类内容。

更新 添加了屏幕截图:

在此处输入图片说明



 类似资料:
  • 问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?

  • 问题内容: 我正在努力看似非常简单的事情。我有一个包含非常长字符串的pandas数据框。 现在,当我尝试打印相同的字符串时,我看不到完整的字符串,而只看到了字符串的一部分。 我尝试了以下选项 使用 使用 使用 其中一个stackoverflow答案建议通过使用pandas display选项来增加列宽,但该方法也不起作用。 我也没有得到如何帮助我。 任何想法表示赞赏。看起来很简单,但无法获得! 问

  • 我有一个tweet数据库,其中实际的tweet文本在一个名为“text”的字段中。 我想知道如何查询并显示最长的tweet?我一直在想也许.排序或.长度或诸如此类的东西,但我环顾四周,到目前为止还没有找到任何有用的东西。 救命啊!谢谢!

  • 问题内容: 在字符串数组中找到最长的字符串有一种简便的方法吗? 像什么? 问题答案: var longest = arr.sort(function (a, b) { return b.length - a.length; })[0]; 可能更有效,但仅自Javascript 1.8 / ECMAScript5起可用,并且在较旧的浏览器中默认不可用:

  • 问题内容: 我正在做一个从列表中返回最长字符串值的函数。当只有一个包含最多字符的字符串时,我的代码有效。如果有多个字符串,我尝试使其打印所有最长的字符串,并且我不希望重复它们。当我运行它时,它只返回“ hello”,而我希望它也返回“ ohman”和“ yoloo”。我觉得问题就在眼前,但是我已经尝试了所有方法,但是没有用。 问题答案: 首先 ,我们可以在列表中找到任何字符串的最大长度: 一点解释

  • 本文向大家介绍找到字符串中最长的单词,并返回它的长度相关面试题,主要包含被问及找到字符串中最长的单词,并返回它的长度时的应答技巧和注意事项,需要的朋友参考一下 function findLongestWord(str){ // let arr=str.split(" "); let arr=str.replace(/[,|.|;]/," ").split(" "); let longLength=