重复删除熊猫数据帧的行

问题描述 投票:0回答:1

我知道有更好的方法,但是我正在使用iterrows遍历熊猫数据框,以计算合并平均值并在每次迭代时删除行。我要从箱中的数据中删除要删除的行数。我这样做是为了避免立即创建恒定数量的垃圾箱,然后再计算垃圾箱平均值,因为我需要确保垃圾箱没有重叠。我以前做过,但遇到了这个问题。下面的代码部分是我现在正在使用的代码。它适用于第一次迭代,但是此后,我收到一条错误消息,说eval()无法评估df_nameeval() arg 1 must be a string, bytes or code object

  for df_name in alldfs:        
      for row,index in eval(df_name).iterrows():   
           ranges=np.arange(eval(df_name).A.min()-0.1 , eval(df_name).A.max() + 0.1, 0.1)  
           groups = eval(df_name).groupby(pd.cut(eval(df_name).mass, ranges,include_lowest=True))
           df_bin=pd.DataFrame(groups.mean())
           df_bin['binned']=eval(df_name).groupby(pd.cut(eval(df_name).mass, ranges, include_lowest=True)).size()
           number_bin=np.array(df_bin['binned'])[0]   
           df_name=eval(df_name).drop(eval(df_name).index[0:number_bin])
python pandas eval bin
1个回答
0
投票

eval()的参数必须是字符串。

尝试改成这种形式:

eval('df_name')

注意,我已将数据框的名称用作字符串,以评估该字符串并将其读取为python代码。

© www.soinside.com 2019 - 2024. All rights reserved.