python - 在 Pandas 数据框列中查找最长字符串的长度

标签 python pandas

有没有比下面的示例更快的方法来查找 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

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

最佳答案

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 语法的来源,我绝对建议您试一试以快速测试此类内容。

更新添加截图:

enter image description here

关于python - 在 Pandas 数据框列中查找最长字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295334/

相关文章:

php - 使用 python 或 php 处理音频文件

python通过偏移轮廓/缩小多边形来分离圆形粒子

python - 在 Python 中, Pandas 。如何通过 WOM - 'Week of the Month' 对数据框进行子集化?

python - 如何使用 pandas 确定每个唯一用户的优先操作

python - 如果我 `with open(file):` 我应该使用 `pd.read_csv` 吗?

python - 二维中的离散或 bin LAB 颜色空间

Python For 循环在增加迭代次数后速度变慢

Python:检查列表中的任何单词是否存在于文档中

python - 如何在 Python 中从一长串信息重新创建嵌套列表?

python - 从字典值构造元组