我有一个文件,想数几个名字在上面。问题是其中一个名字,我有一个以上的名字!我能做些什么来把他们算作一个名字而不是不同的名字?例如: LR = lrr = LRr =LRr,它们都是相同的东西,但是当我想计算它们时,它们使用不同的名称。
谢谢
发布于 2017-02-03 06:35:39
这并不容易。并简化了解决方案--首先是read_csv,然后将所有字母转换为lower,然后将一个或多个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: int64https://stackoverflow.com/questions/42018080
复制相似问题