Разделить столбец в python pandas на два столбца - PullRequest
0 голосов
/ 02 марта 2020

Я хочу разделить запись (всегда строку, содержащую 6 букв) столбца 'Тип сравниваемого изображения' pandas кадра данных на два новых столбца, один из которых содержит первые три буквы, другой содержит последние три буквы исходного столбца.

Name    BaseImage Type  Compared Image Type
 2       oldNeg             semNeg
 2       oldNeu             perNeu
 2       oldNeu             semNeu
 2       oldNeu             newNeu
 2       oldNeg             perNeg

До сих пор я только узнал, как разбить столбец после определенного символа (например, после ",") и был бы благодарен за любую помощь.

1 Ответ

3 голосов
/ 02 марта 2020

У вас есть str доступ:

df['col1'] = df['Compared Image Type'].str[:3]
df['col2'] = df['Compared Image Type'].str[3:]

OUtput:

   Name BaseImage Type Compared Image Type col1 col2
0     2         oldNeg              semNeg  sem  Neg
1     2         oldNeu              perNeu  per  Neu
2     2         oldNeu              semNeu  sem  Neu
3     2         oldNeu              newNeu  new  Neu
4     2         oldNeg              perNeg  per  Neg

На основе ваших данных вы также можете использовать аналогичный подход для разделения столбца с использованием определенного символа, здесь заглавные буквы [A-Z]:

df['Compared Image Type'].str.extract('^(\w*)([A-Z]\w*)')

Вывод:

     0    1
0  sem  Neg
1  per  Neu
2  sem  Neu
3  new  Neu
4  per  Neg
...