Как построить локальную переменную l oop с помощью Plotly - PullRequest
1 голос
/ 09 января 2020

Я работаю над файлом .csv. Я пишу скрипт для разделения подколонок столбец y на основе ";" и печатать только значения a. Код правильно печатает нужные значения. Я хочу построить значения, хранящиеся в var (то есть = 23,21,25,12,18,91,21), используя plotly. Я прилагаю пример данных и кода.

Пример данных:

   x    y   z
lifelock    a=23;b=25;c=12  USD
lifelock    a=21;b=55;c=23  USD
lifelock    a=25;b=2.c=0    USD
mycityfaces a=12;b=7;c=21   USD
flypaper    a=18;b=25;c=9   USD
flypaper    a=91;b=34;c=21  USD
gauto       a=21;b=77;c=81  USD

Вот код:

import pandas as pd
c=pd.read_csv("data-2.csv")
st="a"
for line in range(c.shape[0]): 
    cells = df["y"][line].split(";")    
    for x in cells:
        if x.startswith("a"):
            var=x[2:]
            print(var)

Output:
23
21
25
12
18
91
21
#plotly code
#import plotly.express as px
#fig = px.bar(x='x',y='**var**')
#fig.show()

1 Ответ

0 голосов
/ 10 января 2020

Я внимательно посмотрел на вашу проблему, обратите внимание на ваш набор данных, следующая строка неисправна: lifelock a=25;b=2.c=0 USD (вместо точки с запятой появилась точка).

Вот версия того, что я думаю, вы пытались:

import pandas as pd
# Your conversion from c to df is not necessary
# since read_csv will return you a DataFrame already
df=pd.read_csv("data-2.csv")

# We only take the column on which we want to work.
column = df['y']
# We initialize our plot data
x = []
y = []
for line in range(len(column)):
    cell = column[line]
    # the tuple enhance readability a bit with your data
    (a, b, c) = cell.split(";")
    content = a.split('=')
    # If correctly formed, add the data to your plot
    if len(content) == 2:
        x.append(line)
        y.append(content[1])


#plotly code
import plotly.graph_objects as go
# I used a quick example from the documentation:
# https://plot.ly/python/bar-charts/#bar-chart-with-hover-text
fig = go.Figure(data=[go.Bar(x=x, y=y)])
fig.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...