• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Python - Tablica obiektów dla pandas

VPS Starter Arubacloud
0 głosów
460 wizyt
pytanie zadane 28 marca 2021 w Python przez PIxEL Nowicjusz (180 p.)
zamknięte 1 kwietnia 2021 przez PIxEL

Cześć,

Mam taki problem. Mam zrobioną pętlę, która generuje mi dane o typie pandas.dataframe. Zmienne są generowane dynamicznie i ładują się w string. Zatem czy jest jakaś możliwość, żeby załadować zmienne dataframe do jakiejś tablicy, a potem w tym samym "formacie" je wypakować? Na upartego mógłbym zrobić string -> dataframe, ale to z kolei angażuje stworzenie nowego dataframe, a string dodatkowo troche przekształca otrzymane dane.

 

wygląda to mniej więcej tak:

sheets = ["Arkusz1", "Arkusz2"]
k = len(sheets)
y = None
y = pandas.core.frame.DataFrame(y)
test = []

for i in range(k):
    for sheet in sheets:
        excel = pandas.read_excel(path, sheet_name=sheet)
        df = pandas.DataFrame(excel)
        df[date] = pandas.to_datatime(df[date])    # date to nazwa kolumny w excelu

        mask = (df[date] >= day1) & (df[date] <= day)
        df = df.loc[mask]
        y = y.append(df)  # tutaj caly czas jest typ dataframe
    
        test.append(f"{df}") # tutaj już powstaje string

I teraz kwestia jest taka, że potrzebuje kilka zmiennych (nie wiem ile, bo to zalezy od liczby wpisów w sheets, który przychodzi z ConfigParser) a potem w tej samej formie je wypakować do typu dataframe, żeby potem zrobić dataframe.to_html()

 

Tam jest dodatkowa pętla for i in range(k): - bo był pomysł, żeby to ładować w jakiś inny sposób x[i] = df, ale to nie przeszło, ale już zostawiłem to tak jak napisałem wyżej.

komentarz zamknięcia: rozwiązane
komentarz 28 marca 2021 przez adrian17 Ekspert (346,900 p.)

Nie ukrywam że zupełnie nie rozumiem co chcesz zrobić.

y = y.append(df)

tutaj sklejasz wyniki w jeden dataframe

test.append(f"{df}")

Tutaj masz tablicę stringów, co raczej nie ma sensu

test.append(df)

A to by była tablica frame'ów.

Ale nijak z tego nie mogę wywnioskować, po co w ogóle to robisz i jaką i czego tablicę koniec końców potrzebujesz.

komentarz 28 marca 2021 przez PIxEL Nowicjusz (180 p.)

Chodziło mi o to, aby każdy DataFrame z arkusza był w osobnej zmiennej (bo gdy był w jednej, to tabelka rozrastała się do gigantycznych rozmiarów). Jak robiłem tak jak zrobiłeś, nie do końca to działało, gdy chciałem to przenieść między metodami.
Czyli potrzebowałem konwersji: DataFrame -> String -> DataFrame

Odnosząc się do twojego pierwszego zapytania czemu sklejam wyniki do jednego df?
Otóż cel był taki, aby ze wszystkich arkuszy wyciągnąć tylko jedną kolumnę, która wszędzie nazywa się tak samo, a potem na jej podstawie zrobić porównanie. W moim przypadku to było excel = y[date] i tak oto miałem zbiór wszystkich dat ze wszystkich arkuszy od->do w jednym df i na jego podstawie robiłem porównanie w ifach. 

Po wielu walkach znalazłem pewne obejście - na pewno nie jest ono idealne, ale działa. 
Wystarczy wygenerować DataFrame do csv czyli np,  x.to_csv(index=False) a potem już tylko zrobić .replace na usunięcie średnika, czy tam przecinka, a następnie utworzyć z niego nowy DataFrame - y = pandas.read_csv(x, sep=",").

Podobne pytania

0 głosów
1 odpowiedź 472 wizyt
0 głosów
1 odpowiedź 1,239 wizyt
pytanie zadane 22 czerwca 2019 w Python przez 001greg001 Bywalec (2,030 p.)
0 głosów
0 odpowiedzi 936 wizyt
pytanie zadane 27 lutego 2019 w Python przez Dawid89 Obywatel (1,120 p.)

92,775 zapytań

141,703 odpowiedzi

320,567 komentarzy

62,109 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...