Надеюсь, кто-то может посоветовать AttributeError, который я получаю, так как я не уверен, что не так с тем, как написан мой код. Я видел другие сообщения о том, что «объект DataFrame не имеет атрибута», но это не применимо к этому сценарию. Использование функции Python map() для итерации и применения одного и того же форматирования ко всем строкам и указанным столбцам, но проблема заключается в map(). Есть ли альтернативный подход?
Сообщение об ошибке:
File "Z:\Report\PythonScripts\reporting\templates\lyReload.py", line 70, in getlyReloadTemplate
myData[col] = round(myData[col]/1000,0).astype(int).map("{:,}".format)
File "C:\Program Files\Anaconda3\lib\site-packages\pandas\core\generic.py", line 5575, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'map'
Оригинальный код:
for col in [EPRI,LMTR,LastR]:
myData[col] = round(myData[col]/1000,0).astype(int).map("{:,}".format)
.map() работает только для серии Pandas. Вам нужно использовать .applymap() для Pandas Dataframe
Привет @ASGM, я попытался изолировать ошибку (пробуя по одному столбцу за раз) и все равно столкнулся с тем же сообщением об ошибке.
В этом случае вы можете переписать свой вопрос, чтобы убрать петлю for. И вы можете попробовать это со всеми частями вашего исходного кода, пока у вас не будет минимальной части, которая все еще создает ошибку.






Проблема в дублировании имен столбцов. Таким образом, серия (один столбец) вашего кода возвращает все столбцы с одинаковым именем.
Контрольная работа:
for col in [EPRI,LMTR,LastR]:
print (myData[col])
Решение: дедуплицированные имена столбцов или удалите повторяющиеся имена столбцов:
myData = myData.loc[:, ~myData.columns.duplicated()]
Вы только что закрыли вопрос, используя дубликат вредный. Вы не можете анализировать локализованные числовые литералы, используя замены разделителей
@jezrael похоже, вы правы в отношении дублированных столбцов, и я не уверен, почему они дублируются с самого начала. Однако я применил ваш фрагмент до .map(), и он разрешил его.
Привет @ 2020db9, можете ли вы предоставить код для создания минимального примера данных, который воспроизводит вашу ошибку? Кроме того, вы можете попробовать сократить пример кода, чтобы изолировать ошибку? (т. е. если вы уменьшите его до
myData[EPRI].map("{:,}".format), он по-прежнему будет вызывать ту же ошибку?