I keep getting different attribute errors when trying to run this file in ipython…beginner with pandas so maybe I’m missing something
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'
value_counts is a Series method rather than a DataFrame method (and you are trying to use it on a DataFrame,
clean). You need to perform this on a specific column:
It doesn’t usually make sense to perform
value_counts on a DataFrame, though I suppose you could apply it to every entry by flattening the underlying values array:
To get all the counts for all the columns in a dataframe, it’s just
value_counts() is now a DataFrame method since pandas 1.1.0
value_counts work only for series. It won’t work for entire DataFrame. Try selecting only one column and using this attribute.
It also won’t work if you have duplicate columns. This is because when you select a particular column, it will also represent the duplicate column and will return dataframe instead of series.
At that time remove duplicate column by using
df = df.loc[:,~df.columns.duplicated()] df['accepted'].value_counts()