Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops python数据帧中的嵌套循环_Loops_Dataframe - Fatal编程技术网

Loops python数据帧中的嵌套循环

Loops python数据帧中的嵌套循环,loops,dataframe,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])): 然后将另一个循环嵌套在给定行的列from dat

我正在使用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])):
然后将另一个循环嵌套在给定行的列from data frame的值范围内,如下所示:

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
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
2.
对于i,df_merged.iterrows()中的行:
---->4对于范围内的h(((df_合并['max_move_U%'][行])*(-1),(df_合并['max_move_U%'][行]):
5打印('ok')
6.
TypeError:“tuple”对象不能解释为整数
谢谢大家!

df.iterrows()提供一个元组,其中i是索引,row是与索引对应的序列。 要使用内部循环,应使用索引而不是序列:

   for a in range((df_merged['max_move_%'][i]) * (- 1), df_merged['max_move_%'][i]):
也许更优雅,您也可以直接使用row系列:

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

嗨,朱利安,我把它改成了整数,它还可以:df_merged['max_move'%]=df_merged['max_move'%].astype(np.int64)完美。如果你想操纵浮动,你也可以使用np.arange。嗨,朱利安,你难道不知道向数据帧添加值的解决方案吗?那么第一个循环中的数据与新值一起转换为数据帧?我在df_merged.iterrows()中对I行进行了尝试:对于范围内的((行['max_move%')*(-1),行['max_move%')):df_merged['price_new']=df_merged['price']*(1-a/100.00),但什么都没有发生