熊猫建立直方图

时间:2017-12-04 00:18:32

标签: python pandas numpy

Price Postcode Type Town Date
2003-05-16 397500 BS22 7YA D WESTON-SUPER-MARE 2003-09-10 235000 PE9 3AE D STAMFORD 2003-11-28 150000 WA16 7RH F KNUTSFORD 2003-03-05 95000 PL13 1AT T LOOE 2003-09-19 112950 CF5 1HF T CARDIFF 2003-08-27 155000 CM0 7LY D SOUTHMINSTER 2003-11-17 147000 WD5 0BF F ABBOTS LANGLEY 2003-06-26 198000 CT6 6EE D HERNE BAY 2003-10-01 346000 LE2 2PD D LEICESTER 2003-10-13 163000 TD15 1QY T BERWICK-UPON-TWEED 2003-11-07 197000 W14 8HU F LONDON 2003-12-12 120000 SE7 7AB F LONDON 2003-03-10 110000 SY20 9LB D MACHYNLLETH 2003-08-22 46000 LL24 0RD T BETWS-Y-COED 2003-10-14 80000 CH7 6BQ T MOLD

我有一个像上面这样的csv文件,需要根据价格括号显示交易频率的直方图。如何使用熊猫实现这一目标?

2 个答案:

答案 0 :(得分:1)

使用pd.cut,获取价格括号

df['G']=pd.cut(df.Price,10)

df1=df.G.value_counts()
df1
Out[123]: 
(116300.0, 151450.0]    3
(81150.0, 116300.0]     3
(186600.0, 221750.0]    2
(151450.0, 186600.0]    2
(45648.5, 81150.0]      2
(362350.0, 397500.0]    1
(327200.0, 362350.0]    1
(221750.0, 256900.0]    1
(292050.0, 327200.0]    0
(256900.0, 292050.0]    0
Name: G, dtype: int64
df1.plot(kind='bar')

enter image description here

答案 1 :(得分:0)

交易频率是什么意思?我的第一个猜测是每单位时间的交易数量,但是每个价格范围有一个值,简单的条形图或折线图比直方图更合适。

如果那就是你想要的,那么  (1)用你的价格括号创建一个新行,  (2)groupby()该行,然后aggregate()使用自定义函数计算频率  (3)使用Series.plot()生成最终的情节。