Python 如何将一个dataframe列拆分为多个列

Python 如何将一个dataframe列拆分为多个列,python,pandas,dataframe,Python,Pandas,Dataframe,我在学熊猫 我有一个dataframe列,它在一个由空格分隔的字符串中有多个值 我得把这个专栏分成许多专栏 问题是-拆分可能会给出不同数量的值 我的代码如下: import pandas as pd df = pd.DataFrame({'institute': ['Learn Free Academy', 'Free Code Academy',

我在学熊猫

  • 我有一个dataframe列,它在一个由空格分隔的字符串中有多个值

  • 我得把这个专栏分成许多专栏

  • 问题是-拆分可能会给出不同数量的值

  • 我的代码如下:

    import pandas as pd 
    
    
    
    df = pd.DataFrame({'institute': ['Learn Free Academy', 
                                     'Free Code Academy',
                                     'Avon IT School'],
                        'languages': ['Java,JavaScript:Python;HTML\CSS',
                                      'HTML/CSS\JavaScript',
                                      'C:C#']})
    
    # print(df )
    #             institute                        languages
    # 0  Learn Free Academy  Java,JavaScript:Python;HTML\CSS
    # 1   Free Code Academy              HTML/CSS\JavaScript
    # 2      Avon IT School                             C:C#
    
  • 当我拆分“语言”列时,我得到以下结果:

      print( df['languages'].str.get_dummies(r';|:|\\|\/|,') )
    
      #    C  C#  CSS  HTML  Java  JavaScript  Python  |
      # 0  0   0    0     0     0           0       0  0
      # 1  0   0    0     0     0           0       0  0
      # 2  0   0    0     0     0           0       0  0
    
    如何得到以下结果

      #    Java  Javascript      Python  HTML   CSS  C  C#
      # 0     1           1           1     1     1  0   0
      # 1     0           1           0     1     1  0   0 
      # 2     0           0           0     0     0  1   1 
    
    用于
    |
    ,因为默认分隔符位于:


    使用
    df['languages'].str.get_dummies(“”)
    您的建议是正确的,但是,字符串分隔符是“”。但是,当我有多个分隔符,如逗号、分号、冒号、斜杠、正斜杠等时,我不会得到所需的结果。你能解释一下我把参数传递给函数是否正确吗。补充了答案。
    print (df['languages'].str.replace(r';|:|\\|\/|,','|'))
    0    Java|JavaScript|Python|HTML|CSS
    1                HTML|CSS|JavaScript
    2                               C|C#
    Name: languages, dtype: object
    
    df1 = df['languages'].str.replace(r';|:|\\|\/|,','|').str.get_dummies()
    print(df1)
       C  C#  CSS  HTML  Java  JavaScript  Python
    0  0   0    1     1     1           1       1
    1  0   0    1     1     0           1       0
    2  1   1    0     0     0           0       0