如何统计DataFrame中列表列的每行元素个数?
统计DataFrame中行内列表/元组的元素个数
你遇到的问题是因为len(df['A'])计算的是整个列的行数,而非每行元素的长度。要实现逐行统计,用以下方法即可:
方法一:使用apply()逐行处理
这是最直观的方式,直接对列的每个元素应用len()函数:
import pandas as pd # 构造示例数据 data = { 'A': [(1,2,3), (1)], 'B': [(1,2,3,4), (1,2,3)] } df = pd.DataFrame(data) # 新增C、D列,分别统计A、B列每行的元素个数 df['C'] = df['A'].apply(len) df['D'] = df['B'].apply(len) print(df)
运行后输出结果:
A B C D 0 (1,2,3) (1,2,3,4) 3 4 1 (1) (1,2,3) 1 3
补充:如果列是字符串格式的列表/元组
如果你的数据中,A、B列是字符串形式(比如"(1,2,3)"),需要先将其转换为实际的元组/列表对象,再统计长度:
import ast # 转换字符串为元组 df['A'] = df['A'].apply(ast.literal_eval) df['B'] = df['B'].apply(ast.literal_eval) # 再执行统计 df['C'] = df['A'].apply(len) df['D'] = df['B'].apply(len)
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

