我有一个文件,想要计算几个名字。问题是其中一个名字,我有多个名字!我能把他们算作一个名字,而不是不同的名字? 例如: LR = lrr = LRr = lrrs它们都是一样的但是当我想要计算它们时它们会假设为不同的名称。
谢谢
答案 0 :(得分:0)
这并不容易。并简化了解决方案 - 首先read_csv
,然后将所有字母转换为lower
,然后将replace
从字符串末尾的一个或多个s
转换为空字符串。然后删除重复项 - 稍微修改一下solution(仅替换为一个字母)。最后value_counts
:
因此,如果需要以s
结尾的某些词语也会被替换。
df = pd.read_csv('file.csv')
#sample DataFrame
df = pd.DataFrame({'names': ['LR','lrr','LRr','lrrs', 'lrss', 'lrsss']})
print (df)
names
0 LR
1 lrr
2 LRr
3 lrrs
4 lrss
5 lrsss
print (df.names.str.lower().str.replace('s{1,}$','').str.replace(r'(.)\1+', r'\1'))
0 lr
1 lr
2 lr
3 lr
4 lr
5 lr
Name: names, dtype: object
print (df.names.str.lower()
.str.replace('s{1,}$','')
.str.replace(r'(.)\1+', r'\1')
.value_counts())
lr 6
Name: names, dtype: int64