Aby przetestować niektóre funkcje, chciałbym utworzyć DataFrame
ciąg znaków. Powiedzmy, że moje dane testowe wyglądają następująco:
TESTDATA="""col1;col2;col3
1;4.4;99
2;4.5;200
3;4.7;65
4;3.2;140
"""
Jaki jest najprostszy sposób wczytania tych danych do Pand DataFrame
?
from pandas.compat import StringIO
, zauważając, że jest to ta sama klasa, co ta, która jest dostarczana z Pythonem.pd.read_table()
jest odpowiednikiem funkcji, tylko nieznacznie lepiej nomenklatura:df = pd.read_table(TESTDATA, sep=";")
.pandas.compat.StringIO
. W ten sposób nie musimy importowaćStringIO
osobno. Jednakpandas.compat
pakiet jest uważany za prywatny zgodnie z pandas.pydata.org/pandas-docs/stable/api.html?highlight=compat, więc pozostawia odpowiedź na razie.df.to_csv(TESTDATA)
, użyjTESTDATA.seek(0)
Metoda podziału
źródło
df = pd.DataFrame([x.split(';') for x in data.split('\n')[1:]], columns=[x for x in data.split('\n')[0].split(';')])
Szybkim i łatwym rozwiązaniem do interaktywnej pracy jest kopiowanie i wklejanie tekstu poprzez ładowanie danych ze schowka.
Wybierz zawartość ciągu za pomocą myszy:
W użyciu powłoki Pythona
read_clipboard()
Użyj odpowiedniego separatora:
źródło
Tradycyjny plik CSV o zmiennej szerokości jest nieczytelny do przechowywania danych jako zmiennej łańcuchowej. Zwłaszcza w przypadku użycia wewnątrz
.py
pliku, zamiast tego rozważ dane o stałej szerokości oddzielone rurami. Różne środowiska IDE i edytory mogą mieć wtyczkę do formatowania tekstu rozdzielanego potokami w uporządkowanej tabeli.Za pomocą
read_csv
Przechowuj następujące elementy w module narzędziowym, np
util/pandas.py
. Przykład jest zawarty w dokumencie docstring.Niedziałające alternatywy
Poniższy kod nie działa poprawnie, ponieważ dodaje pustą kolumnę po lewej i prawej stronie.
Jeśli chodzi o
read_fwf
to , nie używa tak wielu opcjonalnych kwargów, któreread_csv
akceptują i używają. W związku z tym nie należy go w ogóle używać w przypadku danych rozdzielanych potokami.źródło
read_fwf
wymaga więcejread_csv
argumentów niż jest to udokumentowane, ale prawdą jest, że niektóre nie mają żadnego efektu .Najprostszym sposobem jest zapisanie go do pliku tymczasowego, a następnie odczytanie go:
Właściwy sposób tworzenia pliku tymczasowego: Jak mogę utworzyć plik tmp w Pythonie?
źródło