如何统计DataFrame中每个字符串单元格内的不重复字符数量
逐行统计DataFrame字符串单元格不重复字符数的实现方案
你之前使用的unique、distinct都是统计列级别不重复值的函数,无法作用于单个单元格内部的字符,以下是两种常用场景的实现方法:
Python Pandas 实现
核心逻辑
逐行处理每个字符串单元格:先统一转为小写实现大小写不敏感,再拆分单个字符去重,最后统计去重后的字符数量。
示例代码
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'Text': ['banana', 'banana12', 'Ace@343'] }) # 计算每行字符串的不重复字符数 df['unique char count'] = df['Text'].apply(lambda x: len(set(x.lower()))) print(df)
输出结果
Text unique char count 0 banana 3 1 banana12 5 2 Ace@343 6
R 实现
示例代码
library(dplyr) library(stringr) # 构造示例DataFrame df <- data.frame( Text = c("banana", "banana12", "Ace@343") ) # 计算每行字符串的不重复字符数 df <- df %>% mutate(`unique char count` = str_to_lower(Text) %>% str_split("") %>% sapply(function(x) length(unique(x)))) print(df)
内容的提问来源于stack exchange,提问作者vicky
相关产品推荐
相关产品推荐

