2015-01-14 3 views
-1

나는 같은 dataframe 있습니다분할 다중 스트링은

|column1 | 
|a,b,c  | 
|d,b  | 
|a & b,c | 

을하고 난 인형을 얻을 비슷한이

column_a | column_b | column_c | column_d | column_a & b 
1  | 1  | 1  |0   | 0   
0  | 1  | 0  |1   | 0 
1  | 1  | 1  |0   | 1 

처럼 그것을 가지고 싶습니다 , 것을 제외하고 나는 셀 당 여러 문자열을

내가 셀에 반복 문자열이있는 믿지 않는

, 그래서 아무 '2의

어떤 도움을 주시면 대단히 감사하겠습니다 !!!

data = '''|column1 | 
|a,b,c  | 
|d,b  | 
|a & b,c |''' 

rows = [r.strip() for r in data.replace('\n','').split('|')[3:] if r.strip() != ''] 

values = [] 
for r in rows: 
    values += r.split(',') 
values = set(values) 

print(' | '.join(['column_' + v for v in values])) 
for r in rows: 
    output = '' 
    for v in values: 
     if v in r: 
      output += '1' 
     else: 
      output += '0' 
     output += '  | ' 
    print(output) 

당신은 꽤 보이도록 서식을 일부 문자열을 사용 할 것이다, 그러나 이것은 당신이 시작할 수 있어야합니다

+0

시도한 코드는 무엇입니까? – Marcin

+0

완전히 솔직하게, 나는 시작하는 방법에 대한 손실에있어 –

답변

1

이 같은 시작할 수 있습니다.

+0

내가 그것을 시도해 주셔서 감사 드리며, 그냥 명확하게, 거기에 여분의 공간이 필요하지 않습니다, 그래서 확실하지 않습니다 "출력 + = '|' "가 필요하다. 데이터 프레임처럼 보일 뿐이다. –

+0

데이터를 인쇄하는 대신에 (데이터를 인쇄하는 대신에)'[[1 if v in r else in 0 for v for value]] 대신'r in rows '] 대신에리스트를 얻으려면 ... – scheijan