/ / Usuń dziesiętne z obiektu pływającego do wydruku - python, format, dziesiętny, konkatenacja, obcięcie

Usuń dziesiętny z obiektu pływającego na działkę - python, format, dziesiętny, konkatenacja, obcięcie

Próbuję utworzyć wykres, który ma CompanyName + Całkowita liczba połączeń jako etykieta.

Używam bokeh z tym poleceniem

p.text(xr, yr, df.CompanyName + df.Total, angle=label_angle,
text_font_size="9pt", text_align="center", text_baseline="middle")

ale CompanyName jest str, a Total jest obiektem pływającym, więc sprawy się komplikują. Naprawiłem TypeError: cannot concatenate "str" and "float" objects i udało się go wykreślić za pomocą

p.text(xr, yr, df.CompanyName + (map(str,df.Total)), angle=label_angle,
text_font_size="9pt", text_align="center", text_baseline="middle")

Jednak drukuje to CompanyName i liczbę dziesiętną. Próbowałem wszelkiego rodzaju wycinania tego miejsca po przecinku, często sugerując:

"{:.0f}".format(df.Total)

co daje mi to: ValueError: Unknown format code "f" for object of type "str"

Co do cholery, kiedy ja print df.Total dostaję dtype: float64 Jeśli spróbuję floor(df.Total) dostaję TypeError: cannot convert the series to <type "float"> Jestem zdezorientowany. Czy ktoś wie, co się tutaj dzieje?

Odpowiedzi:

1 dla odpowiedzi № 1

Konwertuj liczbę zmiennoprzecinkową najpierw na int, a następnie na ciąg. Musisz użyć map bo df.Total jest iterowalny. Dlatego float(df.Total) nie działa.

map(str,map(int, df.Total))

Następnie możesz połączyć go w rozmowie bokeh.

p.text(xr, yr, df.CompanyName + map(str,map(int, df.Total)),
angle=label_angle, text_font_size="9pt",
text_align="center", text_baseline="middle")