2017-02-09 3 views
0

저는 python을 처음 사용하고 df 열에 하드 코딩 된 부분 문자열을 계산하는 것에 대한 대답을 찾았지만 다른 df 열을 입력으로 사용할 때 대답을 찾을 수 없습니다. 팬더에서 가능합니까?한 데이터 프레임 열의 발생을 다른 열의 하위 문자열로 계산합니까?

그것은 아주 난장판이다하지만 본질적으로 내 dataframe은 다음과 같습니다

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>"문자열에 ID 열을 더한 값이 필요합니다.

희망이 있으시면 언제든지 도움주세요.

답변

0

당신은 첫 번째 방법 나는 오류 "형식 오류 : 첫 번째 인수는 문자열이나 컴파일 된 패턴해야"이러한

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 :에만 사용할 수 .str 접근자는 pandas에서 np.object_ dtype을 사용하는 문자열 값으로 "아마도 내 SearchID가 int64이기 때문에 가능합니까? 데이터 유형을 변환해야합니까? – Aidz

+0

예, 문자열은 이러한 종류의 함수에 필요합니다. 문자열로 변환 한 후 다시 시도하십시오. – Shijo

관련 문제