Po wpisaniu: „python -V” wyświetla się „NameError: name ‚Python’ is not defined” To jest mniej problem z Pythonem, a bardziej z konfiguracja systemu operacyjnego. Kiedy uruchamiasz polecenie, to system operacyjny musi je odnaleźć na dysku. System operacyjny nie przegląda za każdym razem wszystkich katalogów żeby znaleźć jeden prasujący program. W systemie operacyjnym jest zdefiniowana zmienna […]
Archiwum za miesiąc 2019-02
Python: NameError: name ‚Python’ is not defined
Powershell: Zmienne globalne
W skryptach PowerShell można korzystać ze zmiennych lokalnych (widocznych wewnątrz funkcji), zmiennych skryptu (widocznych w skrypcie) i zmiennych globalnych (widoczne wszędzie). Popatrz na taki przykład:
1 2 3 4 5 6 7 8 9 |
function Show-Variable() { echo "Inside the function: $MyVar" $MyVar='BLUE' } $MyVar = 'GREEN' echo "Outside the function: $MyVar" Show-Variable echo "Outside the function: $MyVar" |
Jest tutaj funkcja, która wyświetla wartość zmiennej zdefiniowanej początkowo na poziomie skryptu. Pytanie, czy ta zmienna będzie widoczna dla funkcji i czy rzeczywiście uda się ją zmienić?
Powershell: Błędu nie ma, a polecenie nie działa
Mamy niby proste polecenie:
1 2 3 |
ls -Recurse C:\Users\admin\Documents\| Select-Object Name,CreationTime | Where-Object -FilterScript {($_.CreationTime -lt (Get-Date).AddDays(-2) -and $_.Extension -eq ".txt")} |
Niestety nic nie jest wyświetlane, a na pewno w tym katalogu są pliki TXT utworzone wcześniej niż 2 dni temu. O co chodzi? ls zwraca obiekty, które mają duuużo właściwości, między innymi Name, CreationTime i Extension Potem te obiekty przechodzą do Select, a select to chirurg, który wyciął wszystko oprócz […]
Python i PANDAS: Połączenie do bazy danych MSSQL
Pyton jest dobrym środowiskiem do analizy danych, ale te dane skąś trzeba brać i gdzieś trzeba je zapisywać. Tu z pomocą przyjdzie moduł pyodbc. Oto przykład gdzie: pobieramy dane z bazy danych AdventureWorks zapisujemy te dane do obiektu data frame tworzymy tabelę w bazie danych tempdb zapisujemy wybrane dane z dataframe do tej tabeli
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import pandas as pd import pyodbc sql_conn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};\ SERVER=Dragon01;\ DATABASE=Adventureworks;\ Trusted_Connection=yes') query = "select CurrencyCode, Name, ModifiedDate from Sales.Currency" df = pd.read_sql(query, sql_conn) print(df.head(3)) sql_conn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};\ SERVER=Dragon01;\ DATABASE=tempdb;\ Trusted_Connection=yes') cursor = sql_conn.cursor() cursor.execute("IF OBJECT_ID('dbo.currencies') IS NOT NULL DROP TABLE dbo.currencies") sql_conn.commit() cursor.execute("CREATE TABLE dbo.currencies(\ code VARCHAR(3),\ name VARCHAR(30))") sql_conn.commit() for index,row in df.iterrows(): cursor.execute("INSERT INTO dbo.currencies(code,name) values (?,?)", row['CurrencyCode'], row['Name']) sql_conn.commit() cursor.close() sql_conn.close() |
[…]
Python: brak podpowiedzi po kropce, control+spacja, TAB. Intellisense nie działa
Dobre środowisko programistyczne w naszych czasach powinno „myśleć” razem z programistą. Ktokolwiek pracował w edytorze, który podpowiada ciąg dalszy nazw zmiennych, funkcji itp. ten wie o czym mówię. Dramat zaczyna się wtedy, kiedy te metody zawiodą! I tak w Python IDLE zdarza się, że TAB nie działa Tabulator działa, ale jego użycie może być trochę […]
Python – oczyszczanie kolumny tekstowej w PANDAS (Seria danych)
Załóżmy, że mam listę z wartościami prezentującymi liczby, ale z nieco zamieszanymi formatami. W oparciu o tą listę tworzę serię:
1 2 3 4 5 |
import pandas as pd lst = ['112,000.000','4,500,000'] s = pd.Series(lst) s wynik to: |
1 2 3 |
0 112,000.000 1 4,500,000 dtype: object |
Jak widać typ to object, czyli w PANDAS – napis. Możesz teraz zbudować dowolną funkcję lambda oczyszczającą ten tekst:
1 2 |
s = s.apply(lambda x: x.replace(',','')) s |
wynik to nadal typ object, ale dane już przypominają liczby:
1 2 3 |
0 112000.000 1 4500000 dtype: object |
teraz wreszcie można […]