![](/img/trans.png)
[英]Pandas wont add column to dataframe while iterating through a directory
[英]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.clip
和sum
:
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.