首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫数据字典的If循环

熊猫数据字典的If循环
EN

Stack Overflow用户
提问于 2020-10-23 10:25:08
回答 1查看 217关注 0票数 0

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

对于字典中的每个数据帧,我想添加一个额外的列。我所做的是:

代码语言:javascript
复制
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。我试过用这个:

代码语言:javascript
复制
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:单位置索引器是不允许的”

有人能帮我吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 10:34:20

当您试图访问DF中不存在的索引时,就会发生这种情况。

如果您确信所有数据帧至少有10行,那么这应该可以工作。如果仍然收到此错误,则意味着其中一个DataFrames的行数少于10行。因此,判断错误的规则是无效的。

代码语言:javascript
复制
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:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64498273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档