Gibt es eine Möglichkeit, eine formatierte Spalte in einem Pandas DataFrame hinzuzufügen, wenn Sie damit in IPython-Notebooks arbeiten? Ich möchte eine Daten-URL hinzufügen und es in der Zelle anzeigen lassen.HTML-Formatierung in Pandas DataFrame
Antwort
Wenn Ihr src
Urls sind zu lang, werden Pandas sie abschneiden, wenn sie angezeigt werden. Sie müssen die maximale Spaltenbreite erhöhen, um dies zu berücksichtigen.
Verfolgen Sie die aktuelle max Spaltenbreite
current_max_colwidth = pd.get_option('display.max_colwidth')
print(current_max_colwidth)
50
Stellen Sie die Option, um etwas Großes
pd.set_option('display.max_colwidth', 1000)
Import HTML
Anzeigefunktion
from IPython.display import HTML
verwenden, um den Datenrahmen to_html
mit dem Parameter escape=False
HTML(
pd.DataFrame([
"""<img src="http://stackoverflow.com/users/flair/2336654.png?theme=default">""",
"""<img src="http://stackoverflow.com/users/flair/2543372.png?theme=default">""",
"""<img src="http://stackoverflow.com/users/flair/44330.png?theme=default">"""
]).to_html(escape=False))
Set Option zurück
pd.set_option('display.max_colwidth', current_max_colwidth)
es in einer ordentlichen Funktion
def my_to_html(df):
current_max_colwidth = pd.get_option('display.max_colwidth')
pd.set_option('display.max_colwidth', 1000)
from IPython.display import HTML
my_html = HTML(df.to_html(escape=False))
pd.set_option('display.max_colwidth', current_max_colwidth)
return my_html
df = pd.DataFrame([
"""<img src="http://stackoverflow.com/users/flair/2336654.png?theme=default">""",
"""<img src="http://stackoverflow.com/users/flair/2543372.png?theme=default">""",
"""<img src="http://stackoverflow.com/users/flair/44330.png?theme=default">"""
])
my_to_html(df)
gibt es eine Möglichkeit, dies zu tun, ohne 'HTML (df.to_html (escape = False)) aufrufen' '? Kann der Datenrahmen das selbst machen? –
Ich konnte keine Option dafür finden. Ich fand einen, der Latex nicht entkommen konnte ... das tut uns nicht gut. Sie könnten die 'to_html'-Methode für diesen Datenrahmen überschreiben, aber das ist ziemlich hacky. Ich habe den Beitrag mit einer Funktion aktualisiert, die es tun wird. – piRSquared
danke! Es ist wirklich schwer, all diese Informationen zu finden, wenn Sie nicht so vertraut mit Bibliotheken sind ... –
Hier ist ein Beispiel:
from IPython.display import HTML
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
# this file is in the same folder as the notebook I'm using on my drive
df['image'] = 'so-logo.png'
df['new'] = df['image'].apply(lambda x: '<img src="{}"/>'.format(x) if x else '')
HTML(df.to_html(escape=False))
Alternativ können Sie df.style
statt IPython.display.HTML
verwenden. Auf diese Weise können Sie auch andere Formatierungen hinzufügen, zum Beispiel die Zeile auf schweben markieren:
from IPython.display import HTML
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df['image'] = 'so-logo.png'
df['new'] = df['image'].apply(lambda x: '<img src="{}"/>'.format(x) if x else '')
def hover(hover_color="#ffff99"):
return dict(selector="tr:hover",
props=[("background-color", "%s" % hover_color)])
styles = [
hover(),
dict(selector="th", props=[("font-size", "150%"),
("text-align", "center")]),
dict(selector="caption", props=[("caption-side", "bottom")])
]
html = (df.style.set_table_styles(styles)
.set_caption("Hover to highlight."))
html
Ich habe meinen Cursor auf die zweite Zeile hier:
- 1. Dataframe PANDAS
- 2. API in Pandas DataFrame konvertieren
- 3. Pytables Tabelle in Pandas DataFrame
- 4. Gebäude in Multiindex Pandas Dataframe
- 5. expandierenden Reihen in Pandas Dataframe
- 6. un_directed ids in Pandas Dataframe
- 7. DataFrame-Umwandlung in Python-Pandas
- 8. Refresh Indizes in Pandas Dataframe
- 9. Kombinieren Datumsbereiche in Pandas Dataframe
- 10. rundes Datum in Pandas Dataframe
- 11. Abfrage auf Pandas Dataframe
- 12. Pandas, konvertieren DataFrame zu MultiIndex'ed DataFrame
- 13. Pandas Dataframe zu Code
- 14. Pandas (Dataframe) Daten auswählen
- 15. Verketten Pandas Dataframe
- 16. Pandas Dataframe - Lookup Error
- 17. pandas dataframe .loc Zeilenwerte
- 18. Kumulative Summe Pandas DataFrame mit Indikator DataFrame
- 19. Pandas Dataframe Index übereinstimmen
- 20. Python Pandas Dataframe Kontrollfluss
- 21. Pandas Dataframe-Unterselektion
- 22. Unit Testing Pandas DataFrame
- 23. Complex Pandas Dataframe Manipulation
- 24. eine Pandas Dataframe
- 25. Pandas Dataframe Speicher Probleme
- 26. Pandas DataFrame Pivot-Problem
- 27. Pandas Dataframe Transpose
- 28. Pickle Dump Pandas DataFrame
- 29. Schiebefenster über Pandas Dataframe
- 30. Pandas Dataframe Spalt Inhalt
Wrap up Und Sie wollen das Bild in der Zelle angezeigt werden? –
Korrekt ............ –
Brauchen wir wirklich so viele "...." :)? –