我希望从直方图中创建一个json / dict。
使用pandas
加载数据并将其绘制成以下结果
import pandas as pd
df = pd.read_csv(PATH_TO_CSV)
df.hist(log=True)
我想知道将这个作为一个词典的最佳方式是什么,我对我希望dict看起来的方式并不严格,但我正在考虑像
这样的东西histogram = {
'dropoff_latitude': {
'30-35': 1800000,
.....
},
'dropoff_longitude': {
....
}
}
答案 0 :(得分:2)
这是一种方式。 histfun
创建了np.histogram
来获取垃圾箱并计算信息。而且,label
会创建bin
表示。
In [95]: def histfun(x):
...: hist, bins = np.histogram(x)
...: bbins = np.char.mod('%.2f', bins)
...: label = map('-'.join, zip(bbins[:-1], bbins[1:]))
...: return dict(zip(label, hist))
...:
In [96]: df.apply(histfun).to_dict()
Out[96]:
{'dropoff_latitude': {'30.00-35.00': 2,
'35.00-40.00': 0,
'40.00-45.00': 0,
'45.00-50.00': 1,
'50.00-55.00': 0,
'55.00-60.00': 0,
'60.00-65.00': 0,
'65.00-70.00': 0,
'70.00-75.00': 0,
'75.00-80.00': 1},
'dropoff_longitude': {'0.00-12.00': 2,
'108.00-120.00': 1,
'12.00-24.00': 0,
'24.00-36.00': 0,
'36.00-48.00': 0,
'48.00-60.00': 0,
'60.00-72.00': 1,
'72.00-84.00': 0,
'84.00-96.00': 0,
'96.00-108.00': 0}}
样本测试数据
In [97]: df
Out[97]:
dropoff_latitude dropoff_longitude
0 30 120
1 30 0
2 45 0
3 80 60