我正在使用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
谢谢!
答案 0 :(得分:1)
df.iterrows()为您提供一个元组,其中i是索引,row是与索引对应的Series。 你想要使用内循环的方式,你应该使用索引而不是系列:
trim
也许更优雅,你也可以直接使用行系列:
for a in range((df_merged['max_move_%'][i]) * (- 1), df_merged['max_move_%'][i]):