首页 > 解决方案 > 获取熊猫数据框列表条目中的数字条目

问题描述

我有一个带有各种列的 pandas 数据框,其中一个是我使用 split 命令拆分为列表的字符串:

    import Pandas as pd

    csvRead = pd.read_csv('../data/Data.csv')
    df = pd.DataFrame(csvRead)

    df['split_string'] = df['string'].str.split(r'[ ]')

    idx = 0
    for i in df['split_string']:
        df['split_string_counts'][idf] = len(i)
        i += 1

现在我想对 for 语句进行矢量化处理,因为 Pandas.Series 包中没有标准命令可以计算 split 命令给出的列表的元素数。数据框 df 有超过 200 万个条目,因此 for 效率非常低。

标签: pandaslistseries

解决方案


可以通过访问该系列的底层来完成.values

import numpy as np

mylen = np.vectorize(len)
df['split_string_counts'] = mylen(df['split_string'].values)

但是对这个答案的评论表明它不会比 jezrael 建议的列表理解更快。


推荐阅读