day2 intermediate code3

This commit is contained in:
Philip 2025-07-16 15:56:47 +02:00
parent 331e55f987
commit cd616d9a97
4 changed files with 142 additions and 3 deletions

View File

@ -34,12 +34,44 @@ daily = beverages_by_date.resample("8h").bfill()
print(daily.loc["2024-02-8":"2024-02-14"]) print(daily.loc["2024-02-8":"2024-02-14"])
# übung mit zeiten # übung mit zeiten
solar_df = pd.read_csv("../data/Balkonkraftwerk.csv", index_col=0) solar_df = pd.read_csv("../data/Balkonkraftwerk.csv",
index_col=0)
solar_df.index = pd.to_datetime(solar_df.index) solar_df.index = pd.to_datetime(solar_df.index)
print(solar_df) print(solar_df)
print(solar_df.columns) print(solar_df.columns)
# 1) Wie sieht es im durchschnitt jeden Tag aus (D) print(solar_df.index)
# 2) An welchen Tagen war die effizientz > 35%
# 1) Wie sieht es im Durchschnitt jeden Tag aus (D)
daily = solar_df.resample("d").mean()
print(daily)
print(daily[daily["efficiency_percent"] > 37])
# 2) An welchen Tagen war die durchschnittliche effizientz > 35%
# 2) maximum > 70%
# 3) Stündliche Werte interpolieren (h) (1h), (3h) # 3) Stündliche Werte interpolieren (h) (1h), (3h)
hourly = solar_df.resample("h").ffill()
print(hourly)
# - Komisch # - Komisch
print(hourly.loc["2024-05-02"])
print()
daily = beverages_by_date.resample("8h").bfill()
print(daily.loc["2024-02-8":"2024-02-14"])
values = pd.DataFrame({
"times": ["2025-08-01 05:00:00", "2025-08-01 09:00:00", "2025-08-01 11:00:00"],
"values": [1, 2, 10]
})
values.set_index("times", inplace=True)
values.index = pd.to_datetime(values.index)
print("-"*100)
print(values)
values = values.resample("h").interpolate()
print(values)
values.index = values.index.tz_localize('Europe/Berlin')
print(values)
values.index = values.index.tz_convert("Us/Central")
print(values)

25
src/T13_GroupbyExtra.py Normal file
View File

@ -0,0 +1,25 @@
import numpy as np
import pandas as pd
names = ('Ortwin', 'Mara', 'Siegrun', 'Sylvester', 'Metin', 'Adeline', 'Utz', 'Susan', 'Gisbert', 'Senol')
data = {'Monday': np.array([0, 9, 2, 3, 7, 3, 9, 2, 4, 9]),
'Tuesday': np.array([2, 6, 3, 3, 5, 5, 7, 7, 1, 0]),
'Wednesday': np.array([6, 1, 1, 9, 4, 0, 8, 6, 8, 8]),
'Thursday': np.array([1, 8, 6, 9, 9, 4, 1, 7, 3, 2]),
'Friday': np.array([3, 5, 6, 6, 5, 2, 2, 4, 6, 5]),
'Saturday': np.array([8, 4, 8, 2, 3, 9, 3, 4, 9, 7]),
'Sunday': np.array([0, 8, 7, 8, 9, 7, 2, 0, 5, 2])}
# T property für .transpose()
data_df = pd.DataFrame(data, index=names).transpose() # achtung hier wird transponiert (spalten zu zeilen und zeilen zu spalten)
print(data_df)
def categorize_day(day):
if day in {"Saturday", "Sunday"}:
return "Weekend"
return "Weekday"
# die spalte nach welcher gruppiert wird in diesem Fall auf den Index gesetzt wird
res = data_df.groupby(categorize_day).sum()
print(res)

70
src/T14_Plotten.py Normal file
View File

@ -0,0 +1,70 @@
# ältere Bibliothek
# - statische Plots
import matplotlib.pyplot as plt
import pandas as pd
# interaktion
# import plotly
# plotten direkt von pandas
# -> backend: matplotlib
cities = {"Stadt": ["London", "Berlin", "Madrid", "Rom",
"Paris", "Wien", "Bukarest", "Hamburg",
"Budapest", "Warsaw", "Barcelona",
"München", "Mailand"],
"Population": [8615246, 3562166, 3165235, 2874038,
2273305, 1805681, 1803425, 1760433,
1754000, 1740119, 1602386, 1493900,
1350680],
"Land": ["England", "Deutschland", "Spanien", "Italien",
"Frankreich", "Österreich", "Romanien",
"Deutschland", "Ungarn", "Polen", "Spanien",
"Deutschland", "Italien"]}
areas = [1572, 892, 604, 1285, 105,415, 228, 755, 525, 517, 101, 310, 182]
cities_df = pd.DataFrame(cities)
cities_df["Flaeche"] = areas
print(cities_df)
#cities_df.plot(x="Stadt", y=["Population", "Flaeche"])
#plt.xticks(range(len(cities_df)), cities_df["Stadt"], rotation=70)
#plt.show()
fig, ax = plt.subplots()
cities_df.plot(x="Stadt", y=["Population", "Flaeche"], ax=ax)
ax.set_xticks(range(len(cities_df)), cities_df["Stadt"], rotation=70)
fig.suptitle("Area und Flaeche in einem")
fig, ax = plt.subplots(2, 1, sharex=True) # ax ein array mit 2 elementen
cities_df.plot(x="Stadt", y="Population", ax=ax[0])
cities_df.plot(x="Stadt", y="Flaeche", ax=ax[1])
fig.suptitle("2 axes in einer figure")
for i in range(2):
ax[i].set_xticks(range(len(cities_df)), cities_df["Stadt"], rotation=70)
fig, ax = plt.subplots()
area_axes = ax.twinx()
width = 0.35
x_pos = range(len(cities_df)) # 0, 1, 2, ..., 12
ax.bar([x - width/2 for x in x_pos], cities_df["Population"], width=width, color="blue", label="Population")
area_axes.bar([x + width/2 for x in x_pos], cities_df["Flaeche"], width=width, color="orange", label="Flaeche")
ax.set_xticks(range(len(cities_df)), cities_df["Stadt"], rotation=70)
fig.suptitle("Area und Flaeche in einem")
handles1, labels1 = ax.get_legend_handles_labels()
handles2, labels2 = area_axes.get_legend_handles_labels()
ax.legend(handles1 + handles2, labels1 + labels2)
plt.show()

12
src/T15_EnergyPlots.py Normal file
View File

@ -0,0 +1,12 @@
# 1. Energie nach Quartal
# alle energieformen in einen plot
# 2. In 2 Plots übereinander
# - greenenergies
# - nongreenenergies
# 3. Alle energien nach type in einem barplot
# - pie-plot
# df.plot.pie