Mai mult
Scrie un panda DataFrame pentru a fișier CSV
Am o dataframe la panda pe care aș dori să scrie într-un fișier CSV. Eu fac asta folosind:
df.to_csv('out.csv')
Si primesc eroarea:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
Există vreo modalitate de a obține în jurul valorii de acest lucru cu ușurință (de exemplu, am caractere unicode în cadru de date)? Și există o modalitate de a scrie o fila fișier delimitat în loc de un CSV utilizând, de exemplu, o 'sa-tab' metoda (care nu cred ca exista)?
604
7
Pentru a delimita de o filă, puteți folosi " sep " argumentul
to_csv
:Pentru a utiliza o anumită codare (de exemplu, 'utf-8') a folosi
codare
argument:Atunci când stocați o
DataFrame
obiect într-un fișier csv utilizareato_csv
metoda, probabil va fi nevoie pentru a stoca precedent indici fiecare rand aDataFrame
obiect.Puteți evitarea că prin care trece un "Fals" valoare booleană la "index" parametru.
Oarecum, cum ar fi:
Deci, dacă DataFrame obiect este ceva de genul:
Fișierul csv va stoca:
în loc de (în cazul când valoare implicită "Adevărat" a fost adoptată)
Mai poți face și altceva, dacă aveți probleme de codare a 'utf-8' și vreau să merg celulă cu celulă, puteți încerca următoarele.
Python 2
(În cazul în care "df" este DataFrame obiect.)
Apoi, încercați:
Puteți verifica codarea coloanele de:
Avertisment: erori='ignor' va omite caracterul de ex.
Python 3
Uneori se confruntă cu aceste probleme daca ai specifica codificarea UTF-8, de asemenea,. Am recomandăm să vă pentru a specifica codarea în timp ce citiți fișierul și aceeași codare în timp ce scrierea în fișier. Acest lucru ar putea rezolva problema ta.
Pentru a scrie un panda DataFrame într-un fișier CSV, veți avea nevoie de
DataFrame.to_csv
. Această funcție oferă multe argumente cu valori implicite rezonabile că veți mai des decât nu trebuie să trec pentru a se potrivi anumit caz de utilizare. De exemplu, ați putea dori să utilizați un alt separator, schimba datetime format, sau drop index atunci când scrieți.to_csv
are argumente puteți trece pentru a răspunde acestor cerințe.Aici's un tabel în care sunt enumerate câteva scenarii comune de scriere pentru fișiere CSV și corespunzătoare argumente puteți utiliza pentru ei.
acesta ar putea fi răspunsul pentru acest caz, dar ca am avut aceeasi eroare, mesajul cu .to_csv am încercat .toCSV('numele.csv') și eroare, mesajul a fost diferit ("'SparseDataFrame' obiect nu are atributul 'toCSV'"). Deci, problema a fost rezolvată prin rotirea dataframe dens dataframe
Exemplu de export în fișier cu calea completă pe Windows și în cazul în care fișierul dvs. are anteturi:
Exemplu, dacă aveți nevoie pentru a stoca în folderul de export, care este în același director în care script-ul dvs. este cu utf-8 encodint și tab ca separator: