数据如下所示:
Id Timestamp Data Group_Id
0 5999 2018-01-01 00:00:05.523 125.5 101
1 6000 2018-01-01 00:00:05.757 125.0 101
2 6001 2018-01-02 00:00:13.507 127.0 52
3 6002 2018-01-02 00:00:13.743 126.5 52
4 6003 2018-01-03 00:00:15.407 125.5 50
基本上,我想检查/打印特定日期的数据,比如2018-01-02
。我知道striptime
来自datetime
,但不确定最好的方法是什么。你知道吗
预期输出如下所示:
Id Timestamp Data Group_Id
2 6001 2018-01-02 00:00:13.507 127.0 52
3 6002 2018-01-02 00:00:13.743 126.5 52
我有两个问题:
1)如何计算2018-01-02
子集中的行数?你知道吗
2)我们可以在Group_Id
上添加第二个条件来过滤日期2018-01-02
上Group_Id
等于52的行吗?你知道吗
使用
dt.strftime
然后用boolean indexing
获得与日期相等的所有行或在一行中:
输出
我们也可以将
set_index
与.loc
一起使用:输出
注意:如果您的
Timestamp
列还不是datetime
,请在运行上述操作之前使用以下代码:问题1:
或者
问题2:
这将为您提供预期的输出:
df[df.Timestamp.dt.date == pd.to_datetime('2018-01-02')]
为了回答您的扩展问题,在末尾添加
shape[0]
将告诉您子集中有多少行。你知道吗df[df.Timestamp.dt.date == pd.to_datetime('2018-01-02')].shape[0]
要添加多个条件:
df[(df.Timestamp.dt.date == pd.to_datetime('2018-01-02')) & (df.Group_Id == 52)]
这是假设组\u Id是int,否则:
df[(df.Timestamp.dt.date == pd.to_datetime('2018-01-02')) & (df.Group_Id == '52')]
相关问题 更多 >
编程相关推荐