import pandas as pd
data = {'date': ['1998-03-01', '2001-04-01','1998-06-01','2001-08-01','2001-05-03'],
'node1': [1, 1, 2,2,3],
'node2': [8,316,26,35,44],
'weight': [1,1,1,1,1], }
df = pd.DataFrame(data, columns = ['date', 'node1','node2','weight'])
print(df)
mask1 = (df['date'] > '1998-01-01 00:00:01') & (df['date'] <= '2000-01-01
00:00:01')
mask2 = (df['date'] > '2000-01-01 00:00:01') & (df['date'] <= '2003-01-01
00:00:01')
mask = pd.concat((mask1, mask2), axis=1)
slct = mask.all(axis=1)
print df.ix[slct]
以上是我的尝试。数据集(以上是玩具数据集)有4列,即node1,node2,weight,timestamp。我想创建两组具有以下条件的行:set1应该包含时间戳在98-00年和2年00-02之间的行。以熊猫中两个时间戳范围条件的交集
同样,两组都应该在两个年份范围(98-00和00-02)中的行。
所以在上面的例子中,两个集合应该是{1,2}和{1,2} .3应该被排除,因为它只出现在00-02范围内。 但我在答案中得到空框架。 首先,我做了mask1和mask2以获得满足各个范围的行,然后将它们连接在一起以找到两个条件的交集。
你期望输出是什么? – Dark
在上面的例子中,答案应该是node:{1,1,2,2}。只有node1:{3}应该被排除。 –
为什么排除3年是2001年? – Dark