我有一个名为' mydata'的DataFrame,如果我这样做
len(mydata.loc['2015-9-2'])
它计算mydata中具有该日期的行数,并返回一个类似
的数字1067
我有另一个名为' yourdata'的数据框。看起来像
timestamp
51 2015-06-22
52 2015-06-23
53 2015-06-24
54 2015-06-25
43 2015-07-13
现在我想在你的数据中使用每个日期,而不是输入每个日期
len(mydata.loc['2015-9-2'])
我可以浏览你的数据'使用它们像
len(mydata.loc[yourdata['timestamp']])
并生成一个包含结果的新DataFrame,或者只是为您的数据添加一个新列,并显示每个日期的结果,但我是否因为如何执行此操作而丢失了?
以下不起作用
yourdata['result'] = len(mydata.loc[yourdata['timestamp']])
这两个
yourdata['result'] = len(mydata.loc[yourdata.iloc[:,-3]])
这确实有效
yourdata['result'] = len(mydata.loc['2015-9-2'])
但是没有好处,因为我想在每一行中使用日期而不是固定日期。
编辑:mydata的前几行
timestamp BPM
0 2015-08-30 16:48:00 65
1 2015-08-30 16:48:10 65
2 2015-08-30 16:48:15 66
3 2015-08-30 16:48:20 67
4 2015-08-30 16:48:30 70
答案 0 :(得分:1)
if (!navigator.geolocation) {
geolocate.innerHTML = 'Geolocation is not available';
} else {
geolocate.onclick = function (e) {
var tl = new TimelineMax({repeat:2});
tl.to("svg.pointwhite", .10, {transformOrigin: "50% 100%", scaleY:0.25, yoyo:true, repeat:1})
.to("svg.pointwhite", .65, {y:-6, ease:Circ.easeOut, yoyo:true, repeat:1});
e.preventDefault();
e.stopPropagation();
map.locate({ maxZoom: 12}); // locate option goes here
};
}
答案 1 :(得分:0)
我认为您需要value_counts
,但首先按dt.date
转换为日期,转换为to_datetime
并最后使用join
:
print (yourdata.join(pd.to_datetime(mydata.timestamp.dt.date)
.value_counts()
.rename('len'), on='timestamp'))
样品:
print (mydata)
timestamp BPM
0 2015-06-23 16:48:00 65
1 2015-06-23 16:48:10 65
2 2015-06-23 16:48:15 66
3 2015-06-23 16:48:20 67
4 2015-06-22 16:48:30 70
print (yourdata)
timestamp
51 2015-06-22
52 2015-06-23
53 2015-06-24
54 2015-06-25
43 2015-07-13
#if dtype not datetime
mydata['timestamp'] = pd.to_datetime(mydata['timestamp'])
yourdata['timestamp'] = pd.to_datetime(yourdata['timestamp'])
print (yourdata.join(pd.to_datetime(mydata.timestamp.dt.date)
.value_counts()
.rename('len'), on='timestamp'))
timestamp len
51 2015-06-22 1.0
52 2015-06-23 4.0
53 2015-06-24 NaN
54 2015-06-25 NaN
43 2015-07-13 NaN