Od czasu do czasu administrator lub programista musi nieco posprzątać w swojej bazie danych. Sprzątanie może polegać na usunięciu tabel, które nie są już potrzebne, w których kiedyś ktoś planował przechowywać jakieś dane, ale się rozmyślił i zostają osierocone, nieużywane tabele. Wykonanie polecenia DROP jest proste, szybkie i przyjemne, ale przed usuwaniem warto sprawdzić, czy […]
Archiwum za miesiąc 2018-11
SQL: Sprawdzanie czy tabela jest wykorzystywana w widokach, funkcjach lub procedurach
Python: zmiana wartości w DataFrame dla wierszy spełniających określony warunek
DataFrame może zawierać dużo wierszy. Czasami chcesz zmienić wartość w określonej kolumnie, ale tylko pod warunkiem, że dane w wierszu spełniają jakiś określony warunek.Zacznijmy od instrukcji tworzącej prosty data frame:
1 2 3 4 5 6 7 8 9 |
import pandas as pd import numpy as np df = pd.DataFrame(columns=['values','values2']) for i in range(10): df.loc[i] = [i,i*10] df |
Teraz kolej na sztuczkę. Trzeba znaleźć miejsca, gdzie w kolumnie values mamy spełniony jakiś warunek, powiedzmy values > 5
1 2 |
filter = df['values'] > 5 filter |
filter to seria wartości […]
Python: Pandas: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
Popatrzmy na takie polecenie:
1 2 3 4 5 6 7 |
import pandas as pd <span class="pln">df </span><span class="pun">=</span><span class="pln"> pd</span><span class="pun">.</span><span class="typ">DataFrame</span><span class="pun">({</span><span class="str">'Name'</span><span class="pun">:[</span><span class="str">'Jack'</span><span class="pun">,</span><span class="str">'Sue'</span><span class="pun">,</span><span class="pln">pd</span><span class="pun">.</span><span class="pln">np</span><span class="pun">.</span><span class="pln">nan</span><span class="pun">,</span><span class="str">'Bob'</span><span class="pun">,</span><span class="str">'Alice'</span><span class="pun">,</span><span class="str">'John'</span><span class="pun">],</span> <span class="str">'A'</span><span class="pun">:</span> <span class="pun">[</span><span class="lit">1</span><span class="pun">,</span> <span class="lit">2.1</span><span class="pun">,</span><span class="pln"> pd</span><span class="pun">.</span><span class="pln">np</span><span class="pun">.</span><span class="pln">nan</span><span class="pun">,</span> <span class="lit">4.7</span><span class="pun">,</span> <span class="lit">5.6</span><span class="pun">,</span> <span class="lit">6.8</span><span class="pun">],</span> <span class="str">'B'</span><span class="pun">:</span> <span class="pun">[.</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> pd</span><span class="pun">.</span><span class="pln">np</span><span class="pun">.</span><span class="pln">nan</span><span class="pun">,</span><span class="pln"> pd</span><span class="pun">.</span><span class="pln">np</span><span class="pun">.</span><span class="pln">nan</span><span class="pun">,</span> <span class="lit">4</span><span class="pun">,</span> <span class="lit">12.2</span><span class="pun">,</span> <span class="lit">14.4</span><span class="pun">],</span> <span class="str">'City'</span><span class="pun">:[</span><span class="str">'Seattle'</span><span class="pun">,</span><span class="str">'SF'</span><span class="pun">,</span><span class="str">'LA'</span><span class="pun">,</span><span class="str">'OC'</span><span class="pun">,</span><span class="pln">pd</span><span class="pun">.</span><span class="pln">np</span><span class="pun">.</span><span class="pln">nan</span><span class="pun">,</span><span class="pln">pd</span><span class="pun">.</span><span class="pln">np</span><span class="pun">.</span><span class="pln">nan</span><span class="pun">]})</span> df[['A','B']].fillna('?', inplace=True) |
wynik to niestety ostrzeżenie: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy downcast=downcast, **kwargs)
Linux Fedora Workstation: Uruchomienie systemu w trybie znakowym
Na systemie jest zainstalowany Linux Fedora Workstation w trybie graficznym. Z jakiegoś powodu uruchamianie grafiki zawodzi, ale śmiało można zostać przy systemie z wyłącznie interfejsem tekstowym. Jak zmienić domyślny sposób uruchamiania systemu, kiedy nie można się zalogować do interfejsu graficznego? Podczas uruchamiania powinieneś zobaczyć menu: naciśnij e. Powinieneś zobaczyć okienko jak poniżej. Musisz dopisać „3” […]