Skip to content

Instantly share code, notes, and snippets.

@pjastr
Created June 9, 2019 10:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjastr/6c2084da69e0652ae15263f16d8fbe83 to your computer and use it in GitHub Desktop.
Save pjastr/6c2084da69e0652ae15263f16d8fbe83 to your computer and use it in GitHub Desktop.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# ładowanie danych do ramki danych, parametr ustawia inny niz domyslny separator, indeksy do pierwsza kolumna z miastami
data = pd.read_csv("miasta.csv", sep=";", index_col=0)
# usuniecie spacji w kolumnie dot. ludnosc
data["Ludnosc"] = data["Ludnosc"].str.replace(" ", "")
# zamiana stringa na liczbę
data["Ludnosc"] = pd.to_numeric(data["Ludnosc"])
# zamiana przecinka na kropkę (do późniejszej konwersji na floata)
data["Powierzchnia"] = data["Powierzchnia"].str.replace(",", ".")
# konwersja kolumny Powierzchnia na typ liczbowy
data["Powierzchnia"] = pd.to_numeric(data["Powierzchnia"])
# policzenie gestosci
gestosc = data["Ludnosc"] / data["Powierzchnia"]
# dodanie nazwy
gestosc.name = "Gestosc"
# polaczenie ramki i serii
data2 = pd.concat([data, gestosc], axis=1)
# kod by wyświetlić miasto o najmniejszej powierzchni
minPow = data["Powierzchnia"].min()
minPowMiasto = data[data["Powierzchnia"] == minPow]
print(minPowMiasto)
# kod do wyświetlenia miast o ludnosci powyzej 0,5 mln
filtrMiasto = data[data["Ludnosc"] > 500000]
print(filtrMiasto)
# kod do wykresów
x = np.arange(len(data2.index))
plt.subplot(2, 1, 1)
plt.title("Gęstość zaludnienia")
plt.bar(x, gestosc)
plt.xticks(x, data.index)
plt.subplot(2, 1, 2)
plt.title("Ludność")
plt.pie(data["Ludnosc"], labels=data.index, autopct='%1.1f%%')
plt.show()
# kod na dodanie nowych miast
dataNew = pd.DataFrame({"Powierzchnia": [334, 222.22, 111.11],
"Ludnosc": [334, 222.22, 111.11],
"Gestosc": [334, 222.22, 111.11],
},
index=["Miasto A", "Miasto B", "Miasto C"])
data3 = pd.concat([data2, dataNew])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment