首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在循环中使用df.at函数时,'BlockManager‘对象没有属性'T’问题

错误:在循环中使用df.at函数时,'BlockManager‘对象没有属性'T’问题
EN

Stack Overflow用户
提问于 2020-01-29 17:25:36
回答 1查看 805关注 0票数 1

当我尝试在没有循环的情况下使用df.at函数时,它可以很好地更改永久列的数据,但在循环中使用它时会出现错误。代码在这里。

代码语言:javascript
复制
import pandas as pd

data1 = {'Name': ['Jai', 'Princi', 'Gaurav', 'Anuj'],
        'Height': [5.1, 6.2, 5.1, 5.2]}
df1 = pd.DataFrame(data1)
data2 = {'Name': ['Jai', 'Princi', 'Gaurav', 'Anuj'],
         'Height': [4.1, 3.4, 7.1, 9.2]}
df2 = pd.DataFrame(data2)
df3 = pd.concat([df1, df2], axis=1)
for i in range(int(len(df1))):
    for j in range(int(len(df2))):
        if df1['Name'][i] != df2['Name'][j]:
            continue
        else:
            out = (df1['Height'][i] - df2['Height'][j])
            df3.at[i, 'Height_Comparison'] = out
            break
print(df3)
EN

回答 1

Stack Overflow用户

发布于 2020-01-30 12:51:58

发生此问题的原因是数据框df3中的列名(‘Name’、'Height')重复,这是由于合并操作造成的。Concat在造成此问题的Data Frame df3中使用相同的列名('Name','Height')创建双条目。一旦我将列名改为Name1,df1中的Height1和df2中的Name2,Heigh2,问题就解决了。

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

https://stackoverflow.com/questions/59963998

复制
相关文章

相似问题

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