You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame列中获取每个单词的长度?

解决Pandas DataFrame列中获取每个单词长度列表的问题

错误原因

你之前的代码[len(i) for i in df['words']]是对每个单元格整体计算长度:

  • 如果单元格是拼接所有单词的长字符串,返回的是整个字符串的字符总数(即所有单词长度之和)
  • 如果单元格是单词列表,返回的是列表内单词的数量
    这都不是你需要的「每个单词的长度组成的列表」。

解决方案

根据你的words列存储格式,分两种情况处理:

情况1:单元格是空格分隔的单词字符串

如果df['words']的每个单元格是类似"alpha omega up down ..."的空格分隔字符串,先拆分字符串为单词列表,再逐个计算单词长度:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({'words': ["alpha omega up down over under purple red blue green"]})

# 生成每个单词长度的列表
df['test'] = df['words'].str.split().map(lambda x: [len(word) for word in x])

# 查看结果
print(df['test'].iloc[0])
# 输出: [5, 5, 2, 4, 4, 5, 6, 3, 4, 5]

情况2:单元格本身是单词列表

如果df['words']的每个单元格已经是["alpha","omega",...]这样的单词列表,直接对列表内的每个单词计算长度:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({'words': [["alpha","omega","up","down","over","under","purple","red","blue","green"]]})

# 生成每个单词长度的列表
df['test'] = df['words'].apply(lambda x: [len(word) for word in x])

# 查看结果
print(df['test'].iloc[0])
# 输出: [5, 5, 2, 4, 4, 5, 6, 3, 4, 5]

内容的提问来源于stack exchange,提问作者EB3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:22:53