Home > Enterprise >  How to unmerge the features of a dataframe from one column into several single columns separated by
How to unmerge the features of a dataframe from one column into several single columns separated by

Time:01-27

More visually, I would like to move from this dataframe :

  | A\B\C\D | Unnamed:1 | Unnamed:2 | Unnamed:3 | Unnamed:4 |
  | --------| ----------|
0 | 1\2\3\4 | NaN       | NaN       |  NaN      | NaN       |
1 | 1\2\3\4 | NaN       | NaN       |  NaN      | NaN       |
2 | a\2\7\C | NaN       | NaN       |  NaN      | NaN       |
3 | d\2\u\4 | NaN       | NaN       |  NaN      | NaN       |

to this one:

  |    A    |     B     |     C     |     D     |
  | --------| ----------|
0 |    1    |     2     |    3      |    4      |
1 |    1    |     2     |    3      |    4      |
2 |    a    |     2     |    7      |    C      | 
3 |    d    |     2     |    u      |    4      |

Thanks !

CodePudding user response:

Try splitting the values first and then split the column name:

df2 = df.iloc[:,0].str.split('\\', expand = True)
df2.columns = df.columns[0].split('\\')
df2

result:

    A   B   C   D
0   1   2   3   4
1   1   2   3   4
2   a   2   7   C
3   d   2   u   4

CodePudding user response:

You can use DataFrame constructor:

out = pd.DataFrame(df.iloc[:, 0].str.split('\\').tolist(), 
                   columns=df.columns[0].split('\\'))
print(out)

# Output
   A  B  C  D
0  1  2  3  4
1  1  2  3  4
2  a  2  7  C
3  d  2  u  4

The question is: why do you have a such input? Do you read your data from csv file and you don't use the right separator?

  • Related