[FIXED] read_excel – liest Hyperlinks aus Spalte mit auch NaN-Werten

Ausgabe

Ich habe diese Anleitung zum Lesen der Links in der einen Spalte gefunden, die Hyperlinks enthält.

Was ich habe, ist Excel, das Spalten enthält, die 2 Arten von Werten haben: NaN oder Link mit: Text und Hyperlink. Beispiel:

NaN
NaN
NaN
Link_text_1:www.something...
Link_text_2:www.something_else...
NaN

Wenn ich die Excel-Datei lade, wird nur der Text aus der Spalte zurückgegeben und der Hyperlink wird entfernt.

Ich habe es mit speziellen Anweisungen versucht, aber sie funktionieren nicht.

Basis meines Codes ist:

path=r'path_to_file'
df = pd.read_excel(path, sheet_name='docs')
link_column = df[["Unnamed: 18"]]
print(link_column)

Und dann sehe ich NaN oder Link_text.

Ich habe es versucht:

df_2 = pd.read_excel(path, sheet_name='Jobs', converters={"Unnamed: 18": lambda x: str(x.value) + "|"+ str(x.hyperlink.target)})

Aber es gibt einen Fehler zurück:

df_2 = pd.read_excel(path, sheet_name='Jobs', converters={"Unnamed: 18": lambda x: str(x.value) + "|"+ str(x.hyperlink.target)}) # read sheet Jobs from excel file
AttributeError: 'str' object has no attribute 'value'

Ich habe versucht, diesen Fehler zu googlen, aber ich konnte nichts finden, was für mich funktioniert.

Lösung

Ich bin mir nicht sicher, ob Pandas Excel-Hyperlinks analysieren kann.

Als Problemumgehung können Sie also das openpyxl.worksheet.hyperlinkModul verwenden, um eine Liste der Hyperlinks in einem Arbeitsblatt/einer Spalte zu erhalten, und dann basierend auf dieser Liste eine Reihe in Ihrem Datenrahmen erstellen.

Versuche dies :

from openpyxl import load_workbook
import pandas as pd

wb = load_workbook('test.xlsx')
ws = wb['Sheet1']

list_of_links = []
for i in range(2, ws.max_row + 1):
    try:
        list_of_links.append(ws.cell(row=i, column=1).hyperlink.target)
    except AttributeError:
        list_of_links.append(np.nan)
        
df = pd.read_excel('test.xlsx')
df['Links'] = list_of_links

# Ausgabe:

print(df)

          ColA                          Links
0          NaN                            NaN
1          NaN                            NaN
2          NaN                            NaN
3  Link_text_1       http://www.something.../
4  Link_text_2  http://www.something_else.../
5          NaN                            NaN

# Verwendetes Arbeitsblatt:

Geben Sie hier die Bildbeschreibung ein


Beantwortet von –
M92_


Antwort geprüft von –
Marie Seifert (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like