Pandas groupby count returns only a column?
我对pandas编程很陌生。我有一个文件excel,我将其放入数据框中,并尝试使用count()来对属性进行分组,如下面的代码所示,然后在绘图栏中显示我分组的这些项目的频率( y轴为频率,x轴为项目):
1 2 3 4 | red_whine=pd.read_csv('winequality-red.csv',header=1,sep=';',names=['fixed_acidity','volatile_acidity',...]) frequency=red_whine.groupby('quality')['quality'].count() pdf=pd.DataFrame(frequency) print(pdf[pdf.columns[0]]) |
但是,如果执行此操作,此代码将向我显示以下结果,就像它是唯一列一样:
1 2 3 4 5 6 7 | quality 3 10 4 53 5 680 6 638 7 199 8 18 |
如何将两列分开?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import urllib2 # By recollection, Python 3 uses import urllib target_url ="http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" wine = pd.read_csv(urllib2.urlopen(target_url), sep=';') vc = wine.quality.value_counts() >>> vc 5 681 6 638 7 199 4 53 8 18 3 10 Name: quality, dtype: int64 >>> vc.index Int64Index([5, 6, 7, 4, 8, 3], dtype='int64') >>> vc.values array([681, 638, 199, 53, 18, 10]) |
有关绘图,请参考:
使用pandas和matplotlib
绘制分类数据