How do I split a string into several columns in a dataframe with pandas Python?

前端 未结 2 1229
南方客
南方客 2020-12-09 12:42

I am aware of the following questions:

1.) How to split a column based on several string indices using pandas? 2.) How do I split text in a column into multiple rows

相关标签:
2条回答
  • 2020-12-09 13:17

    The str.split method has an expand argument:

    >>> df['string'].str.split(',', expand=True)
             0        1         2
    0  astring      isa    string
    1  another   string        la
    2      123      232   another
    >>>
    

    With column names:

    >>> df['string'].str.split(',', expand=True).rename(columns = lambda x: "string"+str(x+1))
       string1  string2   string3
    0  astring      isa    string
    1  another   string        la
    2      123      232   another
    

    Much neater with Python >= 3.6 f-strings:

    >>> (df['string'].str.split(',', expand=True)
    ...              .rename(columns=lambda x: f"string_{x+1}"))
      string_1 string_2  string_3
    0  astring      isa    string
    1  another   string        la
    2      123      232   another
    
    0 讨论(0)
  • 2020-12-09 13:28

    Slightly less concise than the expand option, but here is an alternative way:

    In [29]: cols = ['string_1', 'string_2', 'string_3']   
    
    In [30]: pandas.DataFrame(df.string.str.split(', ').tolist(), columns=cols)
    Out[30]: 
      string_1 string_2 string_3
    0  astring      isa   string
    1  another   string       la
    2      123      232  another
    
    0 讨论(0)
提交回复
热议问题