如何统计Pandas DataFrame每行中各列的元素数量
解决方案
核心思路
利用Pandas的向量化字符串操作处理,避免循环遍历,高效适配3万行的大数据量。关键是用正则分割逗号(兼容逗号后带空格的情况),再统计每行元素数,最后求和得到总数量。
代码实现
- 先构造示例DataFrame(模拟你的数据):
import pandas as pd data = { 'list1': ['TR67-03, 67.8976', '63380, N151, 0546R2, 053246R3'], 'list2': ['6789, SP2B07RAC804, OP21-358-7659, ATHY476', '6874, FBH, 107229, BC0.76, TY-87, LO0.665'] } df = pd.DataFrame(data)
- 统计每行元素数并计算总数:
# 统计list1每行元素数,再求和 list1_total = df['list1'].str.split(',\s*').str.len().sum() # 统计list2每行元素数,再求和 list2_total = df['list2'].str.split(',\s*').str.len().sum() print(f"List1-{list1_total}") print(f"List2-{list2_total}")
代码说明
str.split(',\s*'):用正则表达式匹配逗号+任意数量空格作为分隔符,一次性处理带空格/不带空格的分割场景,分割结果是每行对应的元素列表。str.len():获取每行分割后列表的元素数量(即该行的元素个数)。sum():对所有行的元素数求和,得到该列的总元素数量。
运行结果
List1-6 List2-10
内容的提问来源于stack exchange,提问作者Luke Lucy
相关产品推荐
相关产品推荐

