【发布时间】:2021-01-29 15:20:13
【问题描述】:
我试图从一个数据帧中乘以 2 个数据,但是当我运行代码时它给出了一个 TypeError: can't multiply sequence by non-int of type 'str'。我可以知道如何将数据框数据类型从“pandas.core.series.Series”转换为“int”吗?
def generatePortfolioStatement(stock):
df = pd.DataFrame(data = stock[1:],columns = stock[0])
local_df = df
sum_mp = str(100) + "%"
local_df["Total Invested"] = local_df["Qty"] *local_df["BoughtPrice"]
sum_ti = local_df["Total Invested"].sum()
local_df["Invested Portfolio Size"] = ((local_df["Total Invested"] / sum_ti) * 100).round(0).astype(str) + "%"
local_df["Total Market Value"] = local_df["Qty"] * local_df["MarketPrice"]
sum_mv = local_df["Total Market Value"].sum()
local_df["Profit/Loss"] = local_df["Total Market Value"] - local_df["Total Invested"]
sum_pl = local_df["Profit/Loss"].sum()
local_df["Market Portfolio Size"] = ((local_df["Total Market Value"] / sum_mv) * 100).round(0).astype(str) + "%"
sum_row = {"No":" ","Company":" ","Cap":" ","Qty":" ","BoughtPrice":" ","MarketPrice":"Sum","Total Invested":sum_ti,"Invested Portfolio Size":" ","Total Market Value":sum_mv,"Profit/Loss":sum_pl,"Market Portfolio Size":sum_mp}
local_df = local_df.append(sum_row, ignore_index = True)
return local_df
【问题讨论】:
标签: python