2017-02-09 3 views
0

私はPythonには新しく、dfカラムにハードコードされた部分文字列を数えるための答えを見つけましたが、入力として別のdfカラムを使用すると答えを見つけることができません。これはパンダで可能ですか?あるデータフレーム列の出現を別のデータ列の部分文字列としてカウントしますか?

それはかなり厄介だが、基本的に私のデータフレームがある:私もIDの発生をカウントする必要がありますしかし、私は特定の文字列の出現回数を数えることができた

ID Info 
3457 <type1><stats></id>3457<type2></id>3457<type2></id>45 
234 <type2><stats></id>234 
4555 <type2><stats></id>604555<type1></id>4555<type2></id>4555 
2378 <stats></id>555 

df['Type1_Count']=df['Info'].apply((lambda string: string.count("<type1>"))) 
df['Type2_Count']=df['Info'].apply((lambda string: string.count("<type2>"))) 

を例えばこれらは偽の一致を持つ可能性があるため、実際には文字列「/ id>」にIDの列を加えたものにする必要があります。

これは意味があると思いますが、助けてください。

答えて

0

あなたが最初の方法私はエラーを取得する「はTypeError:最初の引数は文字列またはコンパイル済みのパターンでなければなりません」の場合、これらの

df = pd.DataFrame({'name':['bernard','Samy','yyy'],'digit':[2,3,3],'SearchID':['be','xx','Sam']}) 
print df 

for ID in df['SearchID']: 
    print ID, '\n', df.name.str.count(ID) 

Searchstr = df['SearchID'].str.cat(sep='|') 
print df.apply(lambda x: x['name'].count(x['SearchID']), axis=1) 
+0

のいずれかを試すことができます第二の方法については 私に与えます「はAttributeError:のみ使用できます私のSearchIDがint64なのでpandasのnp.object_dtypeを使う文字列値を持つ.strアクセサ " データ型を変換する必要がありますか? – Aidz

+0

はい、この種の関数には文字列が必要です。文字列に変換してから試してみてください – Shijo

関連する問題