Wpis z mikrobloga

#pandas #python
Mam dwie tabele (tab1 - kolumny A, B; tab2- kolumny C, D). Jedna ma 2 wiersz3, druga - trzy. Dla ulatwienia - jedna ma wartosci x, a druga - y.Chce je połączyc wierszami (dokladnie w kolejnosci wystepowania w tabeli), a brakujace wiersze wypelnic np. 'z'.
Pożądany efekt końcowy:
A B C D
x x y y
x x y y
z z y y

(moze byc tez None zamiast 'z', bo potem zalatwie to fillna() ).

Jakas funkcja to ogarnia czy musze sie meczyc recznie (to część wiekszego problemu)?
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@cohontes: Na pamiec juz to umiem :) Merge wymaga klucza, concate mi laczy jakby oddzielnie (w powyzszym przypadku:
x x z z
x x z z
z z y y
z z y y
z z y y
  • Odpowiedz
@IamHater: przy obu parametrach tak dziala. Nie wiem, moze cos zle wpisuje?
pd.concat([tab1, tab2], axis=0)

@luukasek: append dodaje wierszami, nie kolumnami, a ja lacze kolumnami. Uzywajac tab1.apped(tab2, ignore_index=True) bedzie jak powyzej dalem przy cocat.
  • Odpowiedz
@thomeq: ciężko mi powiedzieć co tam jeszcze może mieszać, mi zawsze działało tak jak mówi dokumentacja tj.

Combine DataFrame objects horizontally along the x axis by passing in axis=1.
  • Odpowiedz
Co ciekawe, niezaleznie czy axis = 1 czy 0 wynik ten sam...


@thomeq: jeden check który zawsze będzie mi przychodził do głowy w momencie gdy coś zupełnie nie działa to czy nadpisujesz obiekt/masz inplace=True

a jak nie to możesz wrzucić fragment kodu który transformuje
  • Odpowiedz
@IamHater: ja nawet teraz nie ndapisuje, tylko ogladam wynik (powinienem dostac 9 wierszy, a dostaje 17 (8+9, bo tyle wierszy maja obie tabele).
Jak testowo zrobie explicite na przykladzie z mojego pierwszego postu, to concat dziala jak piszesz :/
  • Odpowiedz
@IamHater: Mam (jednak rozmowa z kims pomaga :P )
te tabele to wyimki z wiekszych tabel. Skubany patrzyl na indeks wierszy oryginalnej tabeli i brał go pod uwage...

5h siedzenia... (concat na poczatku probowalem)... :/
  • Odpowiedz