将一个列中的多个字符串拆分为每个字符串类型一个列

时间:2015-01-14 00:10:30

标签: python pandas split

我有一个类似的数据框:

|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

任何帮助都将非常感谢!!!

1 个答案:

答案 0 :(得分:1)

你可以从这样的事情开始:

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)

你必须使用一些字符串格式才能让它看起来漂亮,但这应该可以让你开始。