python数据帧中的嵌套循环

时间:2018-05-05 10:11:38

标签: loops dataframe

我正在使用pandas Python库,我非常坚持使用嵌套循环。

我想为每一行运行计算 - 没关系:

for i, row in df_merged.iterrows():

我的数据如下:

product price   max_move_%
  1     100      10

然后在给定行的数据框中的列的值范围内嵌套另一个循环,如下所示:

for a in range((df_merged['max_move'][row])* (- 1)), (df_merged['max_move'][row])):

所以我得到了

product price   max_move_%  true_move     price_new
1       100      10          -10            90
1       100      10          -9             91
 .....
1       100      10          10             110

甚至可以在数据帧中使用吗?要在循环中使用来自df的特定值>

我遇到了这种错误:

 ---------------------------------------------------------------------------
 TypeError                                 Traceback (most recent call last)
 <ipython-input-51-9c87df3fd221> in <module>()
       2 
       3 for i, row in df_merged.iterrows():
----> 4     for h in range(((df_merged['max_move_%'][row]) * (- 1), (df_merged['max_move_%'][row]))):
  5        print('ok')
  6 

 TypeError: 'tuple' object cannot be interpreted as an integer

谢谢!

1 个答案:

答案 0 :(得分:1)

df.iterrows()为您提供一个元组,其中i是索引,row是与索引对应的Series。 你想要使用内循环的方式,你应该使用索引而不是系列:

trim

也许更优雅,你也可以直接使用行系列:

   for a in range((df_merged['max_move_%'][i]) * (- 1), df_merged['max_move_%'][i]):