Jak zapisać DataFrame do CSV?

0

mam pytanie, uczę się Pandasa obecnie i się zawiesiłem - jak zapisać cały obiekt DataFrame do .csv?

for i in range(1, 51):

    # kod programu ...

    # Data Frame & csv
    
    df = pd.DataFrame(data=[[number_of_counts, education_level, marital_status, f'{earnings} zł brutto']], index=[f'{i}'], columns=row_of_title)

    with open('filename.csv', 'w+', newline="", encoding='UTF-8') as csv_file:
        df.to_csv(path_or_buf=csv_file)

w wyniku otrzymuję:

Number of counts,Education level,Marital status,Earnings
50,[1],Graduate,Married,30282 zł brutto

czyli ostatni wynik, to tak wygląda że odpalam for 1 i robię obliczenia dla 1, kolejna iteracja dla 2 itd i za każdym razem obiekt poprzedni obiekt df jest kasowany z pamięci. (print listuje wszystkie operacje w terminalu). Próbowałem metody append ale nie działa mi - tylko pojawiają się same nagłówki bez danych. A wynikowy plik chciałbym zrobić: 1 nagłówek a reszta wierszy wyniki z obliczeń.

Z góry dziękuję za pomoc :)

Pozdrawiam.

1

A dlaczego uważasz, że powinno tam być więcej wierszy? Za każdym przebiegiem pętli nadpisujesz DataFrama i nadpisujesz plik

0
S4t napisał(a):

A dlaczego uważasz, że powinno tam być więcej wierszy? Za każdym przebiegiem pętli nadpisujesz DataFrama i nadpisujesz plik

Nie uważam, że powinno, chcę zrobić aby tak było, domyślam się że nadpisuję plik bo jak pisałem. Tylko nie widzę błędu jak ta konstrukcja ma wyglądać aby zbudować plik, próbowałem data = [], data.append(df) i to zapisać do pliku ale mam 50 wierszy z nagłówkami, a nie 1 nagłówek i reszta dane. For w df potrzebuję bo wcześniej kod mi produkuje odpowiedni wynik dla inkrametacji.

0

ogarnąłem temat :)

1

Pandas ma metody do zapisu plików.

Wystarczy napisać:

df.to_csv("plik.csv")

Menager kontekstu "with" jest zbędny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1