Plotly: ошибка с pandas dataframe: модуль 'plotly. express .data' не имеет атрибута - PullRequest
1 голос
/ 24 февраля 2020

Во-первых, извинения, если это глупый вопрос, я впервые использую заговор. Я пытаюсь создать диаграмму солнечных лучей, используя мой фрейм данных «актер», но я получаю ошибку атрибута при попытке сделать это:

Ошибка:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-32-2e5f13ef3c16> in <module>
----> 1 px.data.actor

AttributeError: module 'plotly.express.data' has no attribute 'actor'

Снимок экрана:

enter image description here

У меня вверху импортированы следующие пакеты:

import plotly.graph_objects as go
import plotly.io as pio
import plotly.express as px

Может Кто-нибудь видит, где я иду не так? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Кажется, вы предполагаете, что px.data.actor каким-то образом сделает ваш фрейм данных actor доступным для заговора. И я могу понять, почему, поскольку px.data сделает доступными для вас некоторые встроенные наборы данных, например px.data.carshare():

    centroid_lat    centroid_lon    car_hours   peak_hour
0   45.471549       -73.588684      1772.750000 2
1   45.543865       -73.562456      986.333333  23
2   45.487640       -73.642767      354.750000  20
3   45.522870       -73.595677      560.166667  23
4   45.453971       -73.738946      2836.666667 19

[...]   

244 45.547171       -73.556258      951.416667  3
245 45.546482       -73.574939      795.416667  2
246 45.495523       -73.627725      425.750000  8
247 45.521199       -73.581789      1044.833333 17
248 45.532564       -73.567535      694.916667  5

Для проверки всех наборов данных доступным вам таким же образом, просто наберите dir(px.data), чтобы получить:

['__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 'absolute_import',
 'carshare',
 'election',
 'election_geojson',
 'gapminder',
 'iris',
 'tips',
 'wind']

Но поскольку actor уже доступен для вас (поскольку вы, вероятно, сделали это самостоятельно), строка px.data.actor() совсем не обязательно.

PS

Запуск px.express.carshare() возвращает pandas фрейм данных. Чтобы продолжить работу с этим фреймом данных, лучше присвоить его переменной следующим образом: df_cs = px.data.carshare()

1 голос
/ 25 февраля 2020

Ошибка выглядит очевидной. Я не совсем уверен, почему вызов кода .actor() необходим в коде. px.data загрузит некоторые наборы данных, которые являются частью библиотеки. Некоторые из них включают iris, tips, wind, ... Поскольку у вас уже есть фрейм данных, этот вызов не нужен.

Здесь - это исчерпывающий список из кода.

Просто удалите строку, и она должна работать.

...