Add a to_frame() method to forecast class
Opened this issue · 2 comments
Is your feature request related to a problem? Please describe.
Many libraries that expect weather data as an input use pandas dataframes as the standard data object (PVLib for example). Also, being able to return a pandas dataframe will make it easier to print, plot, and process data returned from darksky.
Describe the solution you'd like
A method called "to_frame()" which returns a DatetimeIndex'd dataframe of weather data.
weather = darksky.get_time_machine_forecast(...)
hourly_forecast_dataframe = weather.hourly.to_frame()
# print the start of the forecast
print(hourly_forecast_dataframe.head())
# plot the temperature
hourly_forecast_dataframe.plot(y='temperature')
Describe alternatives you've considered
Currently I use a function which accepts a forecast as an argument and returns a dataframe. This works just fine, but a built-in method would be nice."
For reference, here is the function I use.
import pandas as pd
def darksky_forecast_to_dataframe(forecast):
"""Convert darksky forecast data list to a dataframe
Keyword arguments:
forecast -- list of daksky forecast items
Returns:
df -- DatetimeIndexed pandas dataframe of the forecast data
"""
# convert list of forecast items to list of dictionaries
data = [entry.__dict__ for entry in forecast]
# make the dataframe
df = pd.DataFrame(data)
# use time as the index
df.set_index('time', inplace=True)
return df
Hi @dzimmanck
Pandas are a heavy requirements. I don’t think it will be needed for just one small function.
I will think what can I do