Python .str метод не работает внутри функции iterrow - PullRequest
0 голосов
/ 10 октября 2019

У меня есть файл данных pandas, полный файловых папок. Я пытаюсь перебрать каждую строку, открыть файл и сохранить его в другом формате. Я извлекаю имя файла из строки местоположения как часть пути, чтобы сохранить его.

Тем не менее, нарезка строки местоположения работает вне функции iterrows, но выдает ошибку внутри нее.

Этот код работает сам по себе:

mpo_list['location'].str[31:]

Когда я помещаю его в приведенную ниже функцию iterrow, я получаю сообщение об ошибке.

import pandas as pd
from PIL import Image
from pathlib import Path

for i, row in mpo_list.iterrows():
    im = Image.open(Path(row['location']))
    picture = row['location'].str[31:]
    im.save('D:\\2018_Formost\\2018-12\\Photos\\'+picture, format = 'JPEG')

Это ошибка, которую он выдает:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-49-483e2a21fc33> in <module>
      2     im = Image.open(Path(row['location']))
      3    # picture = row['location'].str[31:]
----> 4     im.save('D:\\2018_Formost\\2018-12\\Photos\\'+row['location'].str[31:], format = 'JPEG')

AttributeError: 'str' object has no attribute 'str'

Кто-нибудь может увидеть, какую ошибку я совершаю?

1 Ответ

1 голос
/ 10 октября 2019

row['location'] уже имеет тип string, поэтому вам нужно только получить доступ к нужным индексам. Попробуйте вместо этого:

picture = row['location'][31:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...