我想在Python 2.7中计算特定行的平均值(另请参阅Question in R)并在结尾处列出一个列表。在我的情况下,我想采取每个事件的平均持续时间。所以这样的事情(最好是一行,计算速度快):
mean_duration = [np.mean(r.duration, r[-1].duration) for r in catalog
if r.eventid == r[-1].eventid]
不幸的是,我不能这样做因为我的班级(以及我的目录)说它不能使用 getitem 。
以下是我的数据集的一部分:
Eventid Station Duration
20120525_0010H stat1 2.40
20120525_0010H stat2 2.80
20120525_0010H stat3 2.40
20120525_0223E stat1 2.80
20120525_0223E stat3 2.00
20120525_0225L stat2 3.20
20120525_0230B stat1 3.20
20120526_0019C stat3 3.20
答案 0 :(得分:0)
data = {}
for r in catalog:
data[r.eventid] = data.get(r.eventid, {})
data[r.eventid][r.station] = data.get(r.station, {})
data[r.eventid][r.station] = r.duration
mdur = [np.mean(data[eventid].values()) for eventid in eventids]