Как получить несколько значений в Pandas - PullRequest
0 голосов
/ 31 мая 2018

Я хочу разделить набор имен файлов на имена и типы файлов.

Тем не менее, я получаю сообщение об ошибке следующим образом.

Как правильно это сделать?

Спасибо.

Фрейм данных:

             full_name
0            ocean.jpg
1            mountain.png
2            forest.gif
3            river.mp4
4            animal.avi
5            girl.pdf

df[['name', 'type']] = df['full_name'].str.split('.')
KeyError: "['name' 'type'] not in index"

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Также вы можете использовать extract с именованными группами.

In [232]: df.full_name.str.extract('(?P<name>\w+).(?P<type>\w+)', expand=True)
Out[232]:
       name type
0     ocean  jpg
1  mountain  png
2    forest  gif
3     river  mp4
4    animal  avi
5      girl  pdf

In [233]: df.join(df.full_name.str.extract('(?P<name>\w+).(?P<type>\w+)', expand=True))
Out[233]:
      full_name      name type
0     ocean.jpg     ocean  jpg
1  mountain.png  mountain  png
2    forest.gif    forest  gif
3     river.mp4     river  mp4
4    animal.avi    animal  avi
5      girl.pdf      girl  pdf
0 голосов
/ 31 мая 2018

Option1
split с tolist, если вы просто хотите получить результат

pd.DataFrame(df.full_name.str.split('.').tolist(), columns = ['name', 'type'])

       name type
0     ocean  jpg
1  mountain  png
2    forest  gif
3     river  mp4
4    animal  avi
5      girl  pdf

Вариант 2 (Вы были очень близки к этому)
split с expand=True, если выхотите редактировать оригинальный фрейм данных

df[['name', 'type']] = df['full_name'].str.split('.', expand=True)

      full_name      name type
0     ocean.jpg     ocean  jpg
1  mountain.png  mountain  png
2    forest.gif    forest  gif
3     river.mp4     river  mp4
4    animal.avi    animal  avi
5      girl.pdf      girl  pdf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...