web-dev-qa-db-fra.com

AttributeError: l'objet 'DataFrame' n'a pas d'attribut

Je continue à recevoir des erreurs d'attribut différentes lorsque j'essaie d'exécuter ce fichier en ipython ... débutant avec pandas alors peut-être que je manque quelque chose

Code:

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'

Des idées?

18
user2884350

value_counts est une méthode Série plutôt qu'une méthode DataFrame (et vous essayez de l'utiliser sur un DataFrame, clean). Vous devez effectuer cela sur une colonne spécifique:

clean[column_name].value_counts()

Il n'est généralement pas logique d'effectuer value_counts sur un DataFrame, mais je suppose que vous pouvez l'appliquer à chaque entrée en aplatissant le tableau des valeurs sous-jacentes:

pd.value_counts(df.values.flatten())
26
Andy Hayden

Pour obtenir tous les décomptes de toutes les colonnes d'une trame de données, il suffit de df.count()

9
szeitlin