首页 > 解决方案 > AttributeError:“DataFrame”对象没有属性“label”

问题描述

我使用以下行创建了一个数据框:

df = pd.read_csv('/Users/cs213/Desktop/class1.csv', sep = ',', error_bad_lines=False)

如果这样打印列

print (df.columns) 

我明白了

索引(['文本','标签'],dtype ='对象')

但是如果我想使用这里的列

df = df[df.Text.apply(lambda x: x.isnumeric())]
df = df[df.Text.apply(lambda x: x !="")]
df = df[df.label.apply(lambda x: x !="")]

我收到以下错误:

AttributeError:“DataFrame”对象没有属性“label”

我已经在这里尝试过解决方案: Data-frame Object has no Attribute and it didn't work。

CSV 文件示例

这是 df.head() 的输出 在此处输入图像描述

标签: pythonpandas

解决方案


编辑1:

CSV 的可重现样本:

df = pd.DataFrame({'Text': [u'Well I am', u"Not my scene", u"Brutal"], 'label': ['y', 'n', 'n']})

您尝试运行的功能:

>>> df = pd.DataFrame({'Text': [u'Well I am', u"Not my scene", u"Brutal"], 'label': ['y', 'n', 'n']})
>>> df
           Text label
0     Well I am     y
1  Not my scene     n
2        Brutal     n
>>> df = df[df['Text'].apply(lambda x: x.isnumeric())]
>>> df
Empty DataFrame
Columns: [Text, label]
Index: []

当然不会有属性'label'

所以发生的事情是,所有x.isnumeric()调用都返回False,因此没有数据保存到df. 你想要做的df = df[df['Text'].apply(lambda x: x.isnumeric())]是“在df中,'Text'是数字的行是什么。” (现在返回False)。没有一行是数字的,所以你得到一个空的数据框。


推荐阅读