我有两个数据集。你知道吗
测向
Name Date Quantity
ZMTD 2018-06-30 1000
ZMTD 2018-05-31 975
ZMTD 2018-04-30 920
ZMTD 2018-03-30 900
ZMTD 2018-02-28 840
ZMTD 2018-01-31 820
ZMTD 2017-12-30 760
ZMTD 2017-11-31 600
ZMTD 2017-10-30 1200
ZMTD 2017-09-31 1170
ZMTD 2017-08-30 1090
ZMTD 2017-07-30 1100
df2型
Name Date Factor
KOC 2018-01-15 0.5
ZMTD 2017-11-10 1.5
ZMTD 2018-03-20 2.5
BND 2016-03-20 25
我试图将满足条件df['Date']<;df2['Date']的所有行上df中的'Quantity'列与df2中的'Factor'列分开。你知道吗
我写了以下代码
name = df['Name'].iloc[0]
for i, row in df2.iterrows():
if row[0] == name:
factor_date = row[1]
ratio = row[2]
for j, rows in df.iterrows():
new_quantity = rows[2]
if (rows[1] < factor_date):
new_quantity = (new_quantity / ratio)
df.at[i, 'Quantity'] = new_quantity
当我运行这段代码时,我期望以下值
Name Date Quantity
ZMTD 2018-06-30 1000
ZMTD 2018-05-31 975
ZMTD 2018-04-30 920
ZMTD 2018-03-30 900
ZMTD 2018-02-28 336
ZMTD 2018-01-31 328
ZMTD 2017-12-30 304
ZMTD 2017-11-31 240
ZMTD 2017-10-30 320
ZMTD 2017-09-31 312
ZMTD 2017-08-30 290.66
ZMTD 2017-07-30 293.34
但我得到的值是数量列除以最新的因子列值2.5,而不是最初除以1.5的值
我想知道我们是否可以保存初始迭代的值,然后使用iterrows在以前的值上运行新的迭代。你知道吗
这会给你你想要的:
相关问题 更多 >
编程相关推荐