Save Portfolio#
- morningstar_data.direct.user_items.save_portfolio(
- portfolio_name: str,
- portfolio_type: PortfolioType,
- holdings: DataFrame | None = None,
- overwrite_if_exists: bool = False,
Save or update a portfolio.
- Parameters:
portfolio_name (
str
) – Name of the portfolio.portfolio_type (
PortfolioType
) – Type of the portfolio. Supported portfolio types: model_portfolios, custom_benchmarks.overwrite_if_exists (
bool
) – If true, an existing portfolio will be overwritten with new name and holdings.holdings – (
DataFrame
, optional) : A DataFrame object containing holdings to save to this portfolio.
- Returns:
A DataFrame object, columns include:
Name
Portfolio Id
- Return type:
DataFrame
- Examples:
Save a new portfolio.
import pandas as pd import morningstar_data as md from morningstar_data.direct.user_items.portfolio import PortfolioType holdings_data_frame = pd.DataFrame( [ ["FOUSA00DFS;FO", "2020-10-31", 33.33], ["0P000002RH;ST", "2020-10-31", 66.67] ], columns=["HoldingId", "Portfolio Date", "Weight"], ) df = md.direct.user_items.save_portfolio( portfolio_name = "new_portfolio", portfolio_type = PortfolioType.model_portfolios, holdings = holdings_data_frame, overwrite_if_exists = False, ) df
- Output:
Name
Portfolio Id
new_portfolio
295F7E59-15AC-4424-958E-3BD8B0A733EE
Update an existing portfolio.
import pandas as pd import morningstar_data as md from morningstar_data.direct.user_items.portfolio import PortfolioType # Updated holdings data holdings_data_frame = pd.DataFrame( [ ["FOUSA00DFS;FO", "2020-05-31", 50], ["0P000002RH;ST", "2020-05-31", 50] ], columns=["HoldingId", "Portfolio Date", "Weight"] ) df = md.direct.user_items.save_portfolio( portfolio_name = "new_portfolio", portfolio_type = PortfolioType.model_portfolios, holdings = holdings_data_frame, overwrite_if_exists = True # Update the existing portfolio ) df
- Output:
Name
Portfolio Id
new_portfolio
295F7E59-15AC-4424-958E-3BD8B0A733EE