AttributeError:“DataFrame”对象没有属性
Posted
技术标签:
【中文标题】AttributeError:“DataFrame”对象没有属性【英文标题】:AttributeError: 'DataFrame' object has no attribute 【发布时间】:2013-10-23 21:46:00 【问题描述】:尝试在 ipython 中运行此文件时,我不断收到不同的属性错误...pandas 初学者,所以也许我遗漏了一些东西
代码:
from pandas import Series, DataFrame
import pandas as pd
import json
nan=float('NaN')
data = []
with open('file.json') as f:
for line in f:
data.append(json.loads(line))
df = DataFrame(data, columns=['accepted', 'user', 'object', 'response'])
clean = df.replace('NULL', nan)
clean = clean.dropna()
print clean.value_counts()
AttributeError: 'DataFrame' object has no attribute 'value_counts'
有什么想法吗?
【问题讨论】:
未来搜索者的注意事项:如果您选择重复的列名,您将获得一个数据框而不是一个系列! 【参考方案1】:value_counts
是一个 Series 方法而不是 DataFrame 方法(并且您正在尝试在 DataFrame 上使用它,clean
)。您需要在特定列上执行此操作:
clean[column_name].value_counts()
在 DataFrame 上执行 value_counts
通常没有意义,但我想您可以通过展平底层值数组将其应用于每个条目:
pd.value_counts(df.values.flatten())
【讨论】:
当我通过iloc
获取列时它不起作用
value_counts()
现在是自 pandas 1.1.0 以来的 DataFrame 方法——发布了另一个答案 ***.com/a/65004307/9379924【参考方案2】:
要获取数据框中所有列的所有计数,只需 df.count()
【讨论】:
df.count()
产生的结果不同于df['col'].value_counts()
aka series.value_counts()
!但是,您的帖子可能对想要df.count()
的人有所帮助【参考方案3】:
value_counts 仅适用于系列。它不适用于整个 DataFrame。尝试仅选择一列并使用此属性。 例如:
df['accepted'].value_counts()
如果您有重复的列,它也将不起作用。这是因为当您选择特定列时,它也将代表重复的列,并将返回数据框而不是系列。当时使用
删除重复的列df = df.loc[:,~df.columns.duplicated()]
df['accepted'].value_counts()
【讨论】:
【参考方案4】:value_counts()
现在是自 pandas 1.1.0 以来的 DataFrame 方法
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.value_counts.html
【讨论】:
【参考方案5】:我遇到了同样的问题,它可以正常工作,但现在由于某种原因它不能正常工作。我用 groupby 替换了它:
grouped = pd.DataFrame(data.groupby(['col1','col2'])['col2'].count())
grouped.columns = ['Value_counts']
grouped
【讨论】:
以上是关于AttributeError:“DataFrame”对象没有属性的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:“DataFrame”对象没有属性“map”
AttributeError:“DataFrame”对象没有属性“label”
AttributeError:模块“networkx”没有属性“from_pandas_dataframe”
Pandas 分析错误 AttributeError:“DataFrame”对象没有属性“profile_report”
Pandas 中的 Concat 2 列 - AttributeError:“DataFrame”对象没有属性“concat”
Unpickling 包含 pandas 数据框的字典会引发 AttributeError:“Dataframe”对象没有属性“_data”