Python 3.x 如何按行将for循环中完成的计算按索引分配给空列?
我有这样一个数据框(包含更多行): 我给两个变量分配了两个数值,如下所示:Python 3.x 如何按行将for循环中完成的计算按索引分配给空列?,python-3.x,pandas,Python 3.x,Pandas,我有这样一个数据框(包含更多行): 我给两个变量分配了两个数值,如下所示: account = 1000 stock_amount = 0 对于df中组合了True和False的每一行,我想通过使用数值变量进行计算来更新列acct\u stock和usd\u account: 我为循环提出了以下: for index,row in df.iterrows(): if (row['Buy'] == True & row['Sell'] == False): r
account = 1000
stock_amount = 0
对于df中组合了True和False
的每一行,我想通过使用数值变量进行计算来更新列acct\u stock
和usd\u account
:
我为循环提出了以下:
for index,row in df.iterrows():
if (row['Buy'] == True & row['Sell'] == False):
row['acct_stock'] = (account * 0.02)/row[4]
row['usd_account'] = account - (stock_amount * 0.02)
当我运行此命令时,acct\u stock和usd\u account
列根本不会得到更新,即使对于满足条件的行也是如此
我做错了什么?计算没有按索引分配到相关列/行,变量“account”
和“stock\u amount
”也在不断更新 为什么不工作的答案包含在中,您需要查看的代码是
但是请记住,在设置值之前,您需要先设置这些列我想出来了,这是您提到的,而且我没有使用和,而是使用&
。谢谢哦,是的,您只能在python中使用and,但是在df.loc[]中您可以使用and&
for index,row in df.iterrows():
if (row['Buy'] == True & row['Sell'] == False):
row['acct_stock'] = (account * 0.02)/row[4]
row['usd_account'] = account - (stock_amount * 0.02)