2017-02-03 1 views
0

私はファイルを持っていて、その上にいくつかの名前を数えたいと思っています。問題は名前の1つで、私は複数の名前を持っています!私は1つの名前としてカウントし、異なる名前ではないことを数えるために何ができるのですか? 例: LR = lrr = LRr = lrrsそれらはすべて同じものですが、それらを数えたいときは、別の名前として扱います。Pythonで異なる名前を数える

ありがとうございます

+0

[ask]と[mcve]を入力してください。 – MYGz

答えて

0

これは簡単ではありません。そして、ソリューションは簡略化されます - 最初にread_csv、すべての文字をlowerに変換してからreplacesの文字列の終わりから空の文字列に変換します。重複を取り除いてください。これは少し変更されました。solution(1文字のみに置き換えられました)。最後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 
関連する問題