Mam funkcję, która za pomocą pand i żądań pobiera plik .CSV do ramki danych pand i zwraca nagłówki. Działa świetnie, tj.
import pandas as pd
import requests
def getcsvheader(file):
print("Getting file...")
res = requests.get(file)
df = pd.read_csv(io.StringIO(res.text))
return(df.columns.tolist())
Chcę zrobić to samo dla pliku Excela, ale nie jestem pewien co do czwartej linii powyżej. Jeśli po prostu zmienię read_csv na read_excel, otrzymam błędy takie jak:
TypeError: unsupported operand type(s) for <<: "str" and "int"
Oczywiście, ponieważ plik Excela nie czyta się jako tekst, więc (io.StringIO (res.text)) należy zastąpić czymś, ale z czym?
Czy jest inny sposób na osiągnięcie tego? (Każda kombinacja bibliotek zrobi to).
Odpowiedzi:
0 dla odpowiedzi № 1pandy mogą korzystać z adresów URL i przodować natywnie. Jeśli po prostu potrzebujesz wiersza nagłówka z adresu URL, powinien Cię tam znaleźć:
import pandas
URL="https://example.com/test.xlsx"
def get_excel_headers_from_url(URL)
return pandas.read_excel(URL).columns.tolist()