我有一本数据字典。我将dict定义为range_,这样当我需要一个特定的数据帧时,我可以称它为range_i。

对于字典中的每个数据帧,我想添加一个额外的列。我所做的是:
for i in range_selected:
for index in range_[i].index:
range_[i].loc[index,'label(1 = fault)'] = ''现在,我想在这个新列的每一行中添加一个值。可以是0,也可以是1。我的条件是,如果每条数据的第一行的'pdis1‘值--第9-10行的值小于零,那么对新列的每一行附加1,否则为0。我试过用这个:
for r in range_:
for index in range_[r].index:
if range_[r]['pdis1'].iloc[0] - range_[r]['pdis1'].iloc[10]:
range_[r].loc[index,'label(1 = fault)'] = '1' 但是我得到了“IndexError:单位置索引器是不允许的”
有人能帮我吗?谢谢
发布于 2020-10-23 10:34:20
当您试图访问DF中不存在的索引时,就会发生这种情况。
如果您确信所有数据帧至少有10行,那么这应该可以工作。如果仍然收到此错误,则意味着其中一个DataFrames的行数少于10行。因此,判断错误的规则是无效的。
for df in range_.values():
if df['pdis1'].iloc[0] - df['pdis1'].iloc[10]:
val = '1'
else:
val = '0'
df['label(1 = fault)'] = val我更改了迭代,使之看起来更像pythonic:)
https://stackoverflow.com/questions/64498273
复制相似问题