【问题标题】:TypeError: can't multiply sequence by non-int of type 'str' [convert data type]TypeError:不能将序列乘以“str”类型的非整数 [转换数据类型]
【发布时间】: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


    【解决方案1】:
    local_df["Qty"] = local_df["Qty"].astype(int)
    local_df["BoughtPrice"] = local_df["BoughtPrice"].astype(int)
    local_df["Total Invested"] = local_df["Total Invested"].astype(int)
    local_df["Total Market Value"] = local_df["Total Market Value"].astype(int)
    local_df["MarketPrice"] = local_df["MarketPrice"].astype(int)
    
    

    这会将您的数据列类型从 str 转换为 int

    【讨论】:

    • 我试过这个方法,但是没有用,仍然产生同样的错误。
    • 您应该将它用于所有列。请检查更新的答案
    • 是的,我设法对所有列使用 .astype(int) 解决了这个错误。谢谢!
    猜你喜欢
    • 2010-11-15
    • 1970-01-01
    • 2019-04-12
    • 2013-07-03
    • 2021-08-07
    • 2020-12-17
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多