簡體   English   中英

遍歷數據框中的列以添加到 Python pandas 中的 Total Value 列

[英]Iterating through columns in a dataframe to add to a Total Value column in Python pandas

我正在嘗試遍歷某些列名以將“TotalValue”列中的總值相加。 我得到:

KeyError: 'TotalValue'

我已經展示了如果我輸入它來得到總數的等式會是什么樣子。

df['TotalValueByHand'] = df['Value_SCHD'] + df['Value_VBR'] + df['Value_IXUS'] + df['Value_MDIZX']

不過,我想遍歷列,因為最終我計划在列表中添加更多內容。 抱歉,如果縮進很奇怪,我輸入時看起來還不錯。

stockList = ["SCHD", "VBR", "MDIZX", "IXUS"]

for s in stockList:
  
    df['TotalValue'] = np.where(df['Value_' + s] > 0, df['TotalValue'] + df['Value_' + s], df['TotalValue'])

如果只需要sum大於0的值,請使用列表理解生成所有列名稱,並使用DataFrame.clipsum

stockList = ["SCHD", "VBR", "MDIZX", "IXUS"]

cols = [f'Value_{s}' for s in stockList]
df['TotalValue'] = df[cols].clip(lower=0).sum(axis=1)

如果只需要sum

cols = [f'Value_{s}' for s in stockList]
df['TotalValue'] = df[cols].sum(axis=1)

如果創建由0填充的第一列,您的解決方案是可能的:

df['TotalValue'] = 0

for s in stockList:

    df['TotalValue'] = np.where(df['Value_' + s] > 0, df['TotalValue'] + df['Value_' + s], df['TotalValue'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM