37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import pandas as pd
|
|
from matplotlib import pyplot as plt
|
|
import matplotlib
|
|
|
|
if __name__ == '__main__':
|
|
# Configure Pandas to only display floats not in scientific notation
|
|
pd.options.display.float_format = "{:.2f}".format
|
|
# Read a list of FR lowest administrative divisions
|
|
# See france-communes-readme.md for field informations
|
|
df = pd.read_json("../data/json/france-communes.json")
|
|
# Get the mean of columns as a new row, and only keep the population column
|
|
df1 = df.copy()
|
|
df1.loc["mean"] = df1.mean(skipna=True, numeric_only=True)[["population"]]
|
|
# Show dataframe
|
|
print(df1.to_string(max_cols=9))
|
|
|
|
# Get only cities in the dept 94
|
|
df2: pd.DataFrame = df.copy()
|
|
# Filter rows by using criteria
|
|
df2 = df2.loc[(df2["departement"] == "94") & (df2["population"] > 0) & (df2["nom"].str.contains(""))]
|
|
# Sort data by columns
|
|
df2.sort_values("nom", inplace=True)
|
|
# Remove columns from the dataframe
|
|
df2.drop(columns=["chefLieu", "commune"], inplace=True)
|
|
print(df2.to_string(max_cols=10))
|
|
|
|
# Show lines
|
|
matplotlib.use("QtCairo")
|
|
plt.rcParams["figure.dpi"] = 96
|
|
gp = df2.plot.line(x="nom", y="population")
|
|
plt.show()
|
|
|
|
# Get postal codes from line 37237
|
|
row = df2.loc[37237]
|
|
print(row["codesPostaux"], type(row["codesPostaux"]))
|
|
|