Skip to main content
 首页 » 编程设计

python之如何更新数据帧值

2025年05月04日9zhenyulu

我有一个项目,对于表中的每一行,我需要遍历另一个表中的行并更新两个表中的值。更改需要坚持下一次迭代。最好的方法是什么?

for invoice_line in invoices.itertuples(): 
    qty = invoice_line.SHIP_QTY 
    for receipt_line in receipts[receipts.SKU == invoice_line.SKU].itertuples(): 
        if qty > receipt_line.REC_QTY: 
            receipts.set_value(receipt_line.index,'REC_QTY',0) 
            qty = qty - receipt_line.REC_QTY 
        else: 
            receipts.set_value(receipt_line.index,'REC_QTY', receipt_line.REC_QTY - qty) 
            qty = 0 
        recd = receipt_line.REC_DATE 
        if qty < 1:break 
    invoices.set_value(invoice_line.index,'REC_DATE',recd) 

set_value 似乎不起作用。

import pandas as pd 
import numpy as np 
 
df = pd.DataFrame(np.random.randn(50, 4), columns=list('ABCD')) 
 
for row in df.itertuples(): 
    df.set_value(row.index,'test',row.D) 
 
print df.head() 

请您参考如下方法:

我想你想要的是一个大写的Index

import pandas as pd 
import numpy as np 
 
df = pd.DataFrame(np.random.randn(50, 4), columns=list('ABCD')) 
 
for row in df.itertuples(): 
    df.set_value(row.Index,'test',row.D) 
 
print df.head()