Разделить на новые столбцы - PullRequest
1 голос
/ 27 мая 2020

Чтобы разделить ячейку на новые столбцы, я использую следующий код:

   | Column1       | Column2
   | a;b;c;d;e;f   | 1;2;3;4

df = pd.read_excel('FileName.xlsx')
new = df["Column1"].str.split(";", n=5, expand=True).
df['1st'] = new[0]
df['2nd'] = new[1]
df['3rd'] = new[2]
df['4th'] = new[3]
df['5th'] = new[4]
df['6th'] = new[5]
df.drop(columns=["Column1"], inplace=True)

Результат станет

 Column:   1st 2nd 3rd 4th 5th 6th 
             a   b   c   d   e   f;

Что я могу сделать, чтобы отменить точку с запятой в последнем пункте

1 Ответ

1 голос
/ 28 мая 2020

Скорее всего, вы допустили опечатку в своем вопросе. Готов поспорить, что при чтении данных после f стоит точка с запятой, и это выглядит так:

    Column1         Column2
0   a;b;c;d;e;f;    1;2;3;4

и не это:

    Column1         Column2
0   a;b;c;d;e;f     1;2;3;4

Итак, если вы установите n=6 вместо n=5, тогда последняя точка с запятой должна быть удалена. Как вариант, вы можете просто удалить n=6 как параметр. Скопируйте первый фрейм данных, который я включил в ответ выше, и запустите приведенный ниже код с df = pd.read_clipboard('\s+\s+') ниже:

import pandas as pd
df = pd.read_clipboard('\s+\s+')
new = df["Column1"].str.split(";", n=6, expand=True)
df['1st'] = new[0]
df['2nd'] = new[1]
df['3rd'] = new[2]
df['4th'] = new[3]
df['5th'] = new[4]
df['6th'] = new[5]
df.drop(columns=["Column1", "Column2"], inplace=True)
df
...